JR 精品文章 - Struts 2
AD: jr (at) javaresearch.org


首页 | 动态 | 文章 | FAQ  | 新闻 | 下载 | 代码 | 工作 | 调查 | 术语 | 站点 | 图书 | 论坛 | 帮助 | 全部  

TOP | 交流 | 软件 | 专栏 | 开源 | 译/著 | 源码 | API  | 推荐 | FTP  | 积分 | 统计 | 搜索 | Blog | 我们  
首页 » 研究文集 » 开发框架 搜索标题相关文章 搜索标题相关文章    评论此文章 发表评论     开始监控此文章 开始监控   加入收藏夹  加入收藏夹
Struts 2
javamonkey 原创   更新:2007-03-03 03:41:21  版本: 1.0   

    tirry_niit同行在http://javaresearch.org/article/63242.htm引用的有一个Apache Struts 2的一个介绍.我作一些补充。补充内容均基于2007-3-3前从Apache网站上看到的所有Struts 2.0.6 的文档.   
  Struts2的一个亮点是不再有ActionForm.即不在强制要求开发者实现MVC中的M,这点是很重要的,模型总是跟业务逻辑相关,任何一个Web开发框架都不可能处理好M部分。以前版本会出现的问题是:
 1)大量的ActionForm,大量相似的业务逻辑对象。
 2)让Web开发者感受不到OO编程的乐趣。因为他们首先要面对的是ActionForm,这是一个很无聊的对象。
Struts2很好的实现了V/O Mapping(即视图层到业务对象的映射,我这么理解的,其实所有的WebFramework都应该重视并发扬这个技术,就像O/R Mapping那样完善的理论和工具).页面表单数据可以直接跟你指定的任何对象进行绑定,绑定规则和类型转化同Struts1基本一样。通常,Struts2推荐把业务对象放在Action里。间接通过Action来绑定。
  Struts2另外一个亮点是在Action配置和Validator配置更加灵活。Struts能将处理请求定位到Action的某个方法里。如下面的Action定义

  1. <action name="EmployeeAction_*" method="{1}" class="com.EmployeeAction">

如果你提交请求EmployeeActionUpdate,Struts2会自动调用EmployeeAction的Update方法.Struts提供在代码外的验证机制保证了Web应用的可维护性。然而,Struts1的验证机制只提供了对一个对象统一的验证机制。这并没有考虑的业务上的变化,比如。Struts1中可以对Employee的名字,性别,生日,EMail做验证。但实际情况是我们的操作有Add Employee,Update Employee等,这俩种操作就有可能需要不同的验证逻辑。Struts2允许为分别为这俩个操作定义不同的Validator配置文件。如分别定义EmployeeAction_save_validation.xml,以及EmployeeAction_update_validation.xml
  Struts2从结构上来说还有个亮点是使用了Interceptors,即Pipeline(or Filter) Pattern。在Http请求到达Action前以及Action处理后,都会经过很多Interceptor类处理。如Validation Interceptor 用于在调用Action前进行验证。从原来Struts1版本来看,其实现也基本上是按照Pipeline来实现的.但这些是不可配置的。现在可以在Struts.xml或者Ation定义里加上<interceptors>配置,如为整个Web系统加上一个权限验证的 
  1. <interceptors>
  2.   <interceptor name="authentication"
  3.                class="myapp.AuthenticationInterceptor"/>
  4.  </interceptors>

  总的来说,Struts2改动地方很大,强化了Action的中心地位;用了更多的技术和标记库来实现View;弱化了对Model层控制。要理解起来并不容易,但它的所做的改动很多地方更加适合实际系统的开发,非常值得我们去试用的。

  附:看Struts2文档推荐看Tutorials中的Bootstrap 和MailReader Tour俩个例子,MailReader Tour是一个非常好的例子。另外要看的是Guides部分,它详细描述了Struts2的各个部分.你看MailReader Tour不明白的地方都能在Guides中找到答案。这些文档都比较全,但因为Struts2架构和核心代码上都来自于WebWork,所以有些文档或者代码片断会搞成WebWork,需要在看文档的时候多注意一下 


[:E]

版权声明   给作者写信
本篇文章对您是否有帮助?  投票:         投票结果:     12       2
作者其它文章: 作者全部文章     查看作者的Blog
评论人:javamonkey 发表时间: Sat Mar 03 03:43:51 CST 2007
标题没改就提交了。晕!!!
评论人:toube 发表时间: Tue Mar 06 19:08:36 CST 2007
[cop]

这个文章共有 2 条评论
主题: 全新的数据持久层解决方案 上一篇文章
返回文章列表 返回〔开发框架〕
下一篇文章 主题: 改写dhtmlxgrid的calender,1.2版本中的有问题。


文字广告链接
        自主、快速定制基于JAVA的B/S业务系统          重量级企业在线自定义WEB报表平台
        Excel制表、零代码发布、打印、图表结合——快逸报表,免费、稳定、功能强大的java工具
        技术圈: 关于Java、dotNet、PHP、Ruby、奇客、Web2.0等更多资讯博客精选文章

关于 JR  |  版权声明  |  联系我们 

©2002-2006 JR 版权所有 沪ICP备05019622号