struts2与webWork2的区别

1.Struts2更加优雅一些,至少Action变成了一个纯粹的POJO,而无须再实现任何一个接口。
2.Struts2不再提供Webwork2内置的IoC容器支持,转而将Spring作为ObjectFactory的缺省实现。所有由Struts2创建的对象都是由ObjectFactory实例化,ObjectFactory可以集成各种IoC容器,例如Spring、Pico、 Plexus等等.
3.在拦截器方面,Struts2不再支持AroundInterceptor,如果要用到AroundInterceptor ,则必须单独引入Webwork2的相关类,或者重写自己的拦截器。
Struts2中绝大多数预建interceptor都从AbstractInterceptor扩展而来,AbstractInterceptor不在支持before、after两个抽象方法,取而代之的是intercept方法被抽象出来,交由子类去实现。 其实大多数interceptor只会去实现before、after中的一个,这样就必须还要在ww中为另一个提供空方法,再由于线程安全问题WW中before和after两个方法之间是无法共享数据,提供两个抽象方法实在意义不大。
AroundInterceptor抽象类在Struts2中已经去除,before和after两个方法无法共用数据,这个类真的没什么用,很多时候都是实现Interceptor接口更为实际。在Strtus2中,实现AbtractInterceptor更为有用,因为可以不用实现init 和destory方法,直接实现intercept方法就可以了。
4.Struts2全面引入了Dojo,大概是对以前Webwork2在客户端实现的不满吧。例如不再支持Webwork2的richtexteditor,而以Dojo的编辑器取代。说实话,Webwork2了的rich text编辑器确实不太好用,有不少bug。还把Webwork2的Datepicker标签换成了Dojo实现的datetimepicker标签。
5.Struts2在Action映射方面的改进值得关注,尤其是借鉴了Spring的方式,提供了对action名称通配符的支持。在Webwork2里,需要在xwork.xml里以如下格式定义action
<action name="Logon" class="com.Logon">
<result type="redirectAction">Menu</result>
<result name="input">/Logon.jsp</result>
</action>
而在Struts2中,则可以引入通配符,形如:
<action name="*Logon" class="com.Logon">
<result type="redirectAction">Menu</result>
<result name="input">/Logon.jsp</result>
</action>
这样,任何以Logon结尾用作登录验证的Action,例如NewUserLogon,都可调用com.Logon的一个实例。
6.Struts2还引入一个消息存储拦截器MessageStoreInterceptor用于存放、检索各种提示、错误消息等等,在一个session生命期中都是可用的。
7.对于模型层来说,struts2可以使用任何数据访问技术,像jdbc、ejb、hibernate等;对于视图层来说,struts2可以与jsp、jtl、jsf、pdf、xslt、templates、Jakarta Velocity engine等
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值