一直在用Webwork
因為Struts
基於Xwork
開發
變化更多的體現在名稱上
所以平時甚少關注
這些天看了一下Apache上的文檔
覺得Struts
更加優雅一些
至少Action變成了一個純粹的POJO
而無須再實現任何一個接口
Struts
不再提供Webwork
內置的IoC容器支持
轉而將Spring作為ObjectFactory的缺省實現
所有由Struts
創建的對象都是由ObjectFactory實例化
ObjectFactory可以集成各種IoC容器
例如Spring
Pico
Plexus等等
在******方面
Struts
不再支持AroundInterceptor
如果要用到AroundInterceptor
則必須單獨引入Webwork
的相關類
或者重寫自己的******
這一點是我不太理解的地方
不知出於什麼考慮
Struts
全面引入了Dojo
大概是對以前Webwork
在客戶端實現的不滿吧
例如不再支持Webwork
的richtexteditor
而以Dojo的編輯器取代
說實話
Webwork
了的rich text編輯器確實不太好用
有不少bug
還把Webwork
的Datepicker標簽換成了Dojo實現的datetimepicker標簽
對開發人員而言
Struts
在Action映射方面的改進值得關注
尤其是借鑒了Spring的方式
提供了對action名稱通配符的支持
在Webwork
裡
需要在xwork
xml裡以如下格式定義action:
<action name=
Logon
class=
tutorial
Logon
>
<result type=
redirectAction
>Menu</result>
<result name=
input
>/Logon
jsp</result>
</action>
而在Struts
中
則可以引入通配符
形如
<action name=
*Logon
class=
tutorial
Logon
>
<result type=
redirectAction
>Menu</result>
<result name=
input
>/Logon
jsp</result>
</action>
這樣
任何以Logon結尾用作登錄驗證的Action
例如NewUserLogon
都可調用tutorial
Logon的一個實例
Struts
還引入一個消息存儲******MessageStoreInterceptor用於存放
檢索各種提示
錯誤消息等等
在一個session生命期中都是可用的
總的來說
Struts
與Webwork
的區別不是很大
但如果將現有的Webwork
項目整體遷移到Struts
上
還是需要認真考慮一下
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28935.html