java

位置:IT落伍者 >> java >> 浏览文章

小解一下Struts2与Webwork2的区别


发布日期:2021年01月02日
 
小解一下Struts2与Webwork2的区别
一直在用Webwork因为Struts基于Xwork开发变化更多的体现在名称上所以平时甚少关注这些天看了一下Apache上的文档觉得Struts更加优雅一些至少Action变成了一个纯粹的POJO而无须再实现任何一个接口

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

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

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

对开发人员而言Struts在Action映射方面的改进值得关注尤其是借鑒了Spring的方式提供了对action名称通配符的支持在Webwork需要在xworkxml里以如下格式定义action:

<action name=Logon class=tutorialLogon>

<result type=redirectAction>Menu</result>

<result name=input>/Logonjsp</result>

</action>

而在Struts则可以引入通配符形如

<action name=*Logon class=tutorialLogon>

<result type=redirectAction>Menu</result>

<result name=input>/Logonjsp</result>

</action>

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

Struts还引入一个消息存储******MessageStoreInterceptor用于存放检索各种提示错误消息等等在一个session生命期中都是可用的

总的来说Struts与Webwork的区别不是很大但如果将现有的Webwork项目整体迁移到Struts还是需要认真考虑一下

上一篇:Eclipse使用及配置

下一篇:MyEclipse 4.1 正式发布