一直在用Webwork2,因为Struts2基于Xwork2开发,变化更多的体现在名称上,所以平时甚少关注。这些天看了一下Apache上的文档,觉得Struts2更加优雅一些,至少Action变成了一个纯粹的POJO,而无须再实现任何一个接口。

Struts2不再提供Webwork2内置的IoC容器支持,转而将Spring作为ObjectFactory的缺省实现。所有由Struts2创建的对象都是由ObjectFactory实例化,ObjectFactory可以集成各种IoC容器,例如Spring、Pico、 Plexus等等.

在拦截器方面,Struts2不再支持AroundInterceptor,如果要用到AroundInterceptor ,则必须单独引入Webwork2的相关类,或者重写自己的拦截器。这一点是我不太理解的地方,不知出于什么考虑。

Struts2全面引入了Dojo,大概是对以前Webwork2在客户端实现的不满吧。例如不再支持Webwork2的richtexteditor,而以Dojo的编辑器取代。说实话,Webwork2了的rich text编辑器确实不太好用,有不少bug。还把Webwork2的Datepicker标签换成了Dojo实现的datetimepicker标签。

对开发人员而言,Struts2在Action映射方面的改进值得关注,尤其是借鉴了Spring的方式,提供了对action名称通配符的支持。在Webwork2里,需要在xwork.xml里以如下格式定义action:

Xml代码
  1. <action name="Logon" class="tutorial.Logon">
  2. <result type="redirectAction">Menu</result>
  3. <result name="input">/Logon.jsp</result>
  4. </action>
<action name="Logon" class="tutorial.Logon"><result type="redirectAction">Menu</result><result name="input">/Logon.jsp</result>
</action>

而在Struts2中,则可以引入通配符,形如:

Xml代码
  1. <action name="*Logon" class="tutorial.Logon">
  2. <result type="redirectAction">Menu</result>
  3. <result name="input">/Logon.jsp</result>
  4. </action>
<action name="*Logon" class="tutorial.Logon"><result type="redirectAction">Menu</result><result name="input">/Logon.jsp</result>
</action>

这样,任何以Logon结尾用作登录验证的Action,例如NewUserLogon,都可调用tutorial.Logon的一个实例。

Struts2还引入一个消息存储拦截器MessageStoreInterceptor用于存放、检索各种提示、错误消息等等,在一个session生命期中都是可用的。

转载于:https://www.cnblogs.com/JemBai/archive/2009/10/23/1588655.html

Struts2与Webwork2的区别相关推荐

  1. Struts2与Struts1的区别

    Struts2是基于WebWork的一个全新框架. 不过有了Struts1的基础,学Struts2更方便. Struts2主要改进是取代了Struts1的Servlet和Action. Struts2 ...

  2. Struts2与Struts的区别

    从Struts2的发展过程来看,Struts2继承了Struts与WebWork的血脉,Struts2取两者之精华,形成新德框架,但是struts2还是更多的继承了struts的设计思想,并加入了We ...

  3. 浅谈Struts2和Sturts1的区别

    Action 类: • Struts1要求Action类继承一个抽象基类.Struts1的一个普遍问题是使用抽象类编程而不是接口. • Struts 2 Action类可以实现一个Action接口,也 ...

  4. struts2和springmvc的区别

    一.框架机制 1.Struts2采用Filter(StrutsPrepareAndExecuteFilter)实现,SpringMVC(DispatcherServlet)则采用Servlet实现. ...

  5. jstl与struts2 条件语句的区别

    jstl <c:if test="${flimit.limitPId==0}">     代码    </c:if> struts     <s:if ...

  6. Struts2和SpringMVC简单配置以及区别总结

    Struts2: struts 2 是一个基于MVC(mode-view-con)设计模式的Web应用框架,是由Struts1和WebWork两个经典框架发展而来的. 工作流程: 1客户端浏览器发出H ...

  7. springmvc、struts2、servlet的联系与区别

    一 servlet - 体系(组织)结构图 图1 - servlet体系(组织)结构图 - 网 参考: Servlet学习笔记五(相关接口与类) - 哔哩哔哩 Servlet继承体系 - 码农岛 错题 ...

  8. 在Struts2中使用OGNL

    OGNL是XWork引入的一个非常有效的数据处理的工具.我们已经了解了OGNL的基本操作和OGNL的内部结构,接下来,我们来看看XWork对OGNL做了什么样的加强,以及OGNL的体系在Struts2 ...

  9. Struts2中OGNL,valueStack,stackContext的学习

    http://jwx0925.iteye.com/blog/630335 [/color]学习Struts2,一直不明白表单中的值是怎么传给Action的,上网查了些资料,基本了解了!下面基本是从几个 ...

最新文章

  1. 开发顺序工作流时注意的几个事项
  2. C++11获取double类型的最大最小值
  3. ibm z系列服务器 cpu,低调发布:看IBM System Z系列大型机CPU
  4. HP-UX平台安装Oracle11gR2数据库
  5. python仿真智能驾驶_基于Python的3R机器人运动仿真
  6. 计算机系统结构教程卷子,计算机系统结构试卷试题.docx
  7. TokenInsight:BTC新增流量小幅下降,链上活跃度平稳
  8. 电商网站主动取消客户已支付成功订单感想
  9. 计算机usb端口没反应,电脑usb端口没反应怎么办,详细教您如何处理
  10. myfiles_WINDOWSXP-KB936929-SP3-X86-CHS.zip
  11. 含有n个元素的整型数组,将这个n个元素重新组合,求出最小的数,如{321,3,32},最小的数为321323...
  12. OSError: Unable to create file
  13. 庄懂着色器_L13_特效篇
  14. PRN(20201012):Improved updating of Euclidean distance maps and Voronoi diagrams
  15. Java并发编程:自己动手写一把可重入锁
  16. 23行代码下载逆水寒壁纸图片
  17. 制作U盘启动盘安装Win11系统
  18. 远程桌面从服务器拷文件出错
  19. 思维导图---“计算机硬件系统”练手
  20. 2020年终总结,少壮工夫老始成

热门文章

  1. 滴,这周的福利已掉落,镁客君请你免费骑摩拜
  2. hp unix oracle rac节点一磁盘损坏,节点修复
  3. 两句话动态修改table数据并提交到后台
  4. Hive On Tez,Tez 和 MapReduce engine 性能对比
  5. 聚焦:好手游难筛选的根本原因
  6. [webapi] 如何在查看api时 显示api的说明
  7. 实习博士访谈:我终于拥有了在大学实验室梦寐以求的算力
  8. 禅道8.2.4 腾讯云迁移至VM
  9. linux的一些机制Signal, Fork,
  10. 你也可以玩转Skype -- 基于Skype API开发外壳程序入门