struts2和webwork2的比较

来源:互联网 发布:百胜软件上海分公司 编辑:程序博客网 时间:2024/04/28 13:56
从某种程度上来看,Struts 2是WebWork的升级,而不是Struts 1的升级,甚至在Apache的Struts 2的官方文档都提到:WebWork到Struts 2是一次平滑的过渡。实际上,Struts 2.0其实是WebWork 2.3而已,从WebWork 2.2迁移到Struts 2.0不会比从WebWork 2.1到2.2更麻烦。
    在很多方面,Struts 2仅仅是改变了WebWork下的名称,因此,如果开发者具有WebWork的开发经验,将可以更加迅速地进入Struts 2的开发领域.

表1 Struts 2和WebWork成员名称的对应

www.86oo.com

 

www.86oo.com

Struts 2成员 http://www.86oo.com

WebWork成员

86oo.com

 

com.opensymphony.xwork2.* 86oo.com

com.opensymphony.xwork.*

欢迎各位访问86oo.com

 

org.apache.Struts2.*

86oo.com

 

com.opensymphony.webwork.*

86oo.com欢迎你

 

struts.xml

欢迎各位访问86oo.com

 

xwork.xml

http://www.86oo.com

 

struts.properties 欢迎各位访问86oo.com

webwork.properties

86oo.com

 

Dispatcher

http://www.86oo.com

 

DispatcherUtil

86oo.com欢迎你

 

org.apache.Struts2.config.Settings

86oo.com提供各类教程

 

com.opensymphony.webwork.config.Configuration

86oo.com提供各类教程

 

 

86oo.com欢迎你

 

除此之外,Struts 2也删除了WebWork中少量特性: 86oo.com

(1)AroundInterceptor:Struts 2不再支持WebWork中的AroundInterceptor。如果应用程序中需要使用AroundInterceptor,则应该自己手动导入WebWork中的AroundInterceptor类。

86oo.com欢迎你

 

(2)富文本编辑器标签:Struts 2不再支持WebWork的富文本编辑器,如果应用中需要使用富文本编辑器,则应该使用Dojo的富文本编辑器。

欢迎各位访问86oo.com

 

(3)IoC容器支持:Struts 2不再支持内建的IoC容器,而改为全面支持Spring的IoC容器,以Spring的IoC容器作为默认的Object工厂。

您所浏览的文章来自86oo.com
 最近下载了struts2.0.6,可真大,解压后大约150M,仔细看了一下,跑了其自带几个demo,并看了一下代码,可以说基本和webwork2一样的,核心基本没改,感觉就修改了包名,说是struts和webwork合并,个人觉得是webwork利用struts这个招牌寻找市场,struts利用webwork2获得重生,因为在struts2基本看不到struts1的影子了。可惜,目前没有关于struts2的书籍,感觉自带的文档排版比较乱(就和webwork2的一样),很难寻找想要的信息,不过可以看webwork in action, 其实只要看了webwork in action的前五章,就可以理解struts2的架构了。

struts2对webwork的改进之处:

1.webwork.properties文件中变量现在可以配置在下列文件(这是struts2自带文档中的说的):

   struts-default.xml
   struts-plugin.xml(在每个plugin的jar包中)
   struts.xml(用constant元素)
   struts.properties(没有默认文件,可选,与webwork.properties文件相似,每个项目可以有这个文件)
   web.xml

下面是struts2自带文档中的示例

Constant Example (struts.xml)
<struts>

   <constant name="struts.devMode" value="true" />

   ...

</struts>Constant Example (struts.properties)
struts.devMode = trueConstant Example (web.xml)
<web-app id="WebApp_9" version="2.4"
xmlns="
http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

     <filter>
         <filter-name>struts</filter-name>
         <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
         <init-param>
          <param-name>struts.devMode</param-name>
          <param-value>true</param-value>
         </init-param>
     </filter>

     ...

</web-app>

2.加入了通配符的支持,这是在ww2中没有的,如下:
<action name="*" >
       <result>/tutorial/{1}.jsp</result>
</action>

 
原创粉丝点击