熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

淺析Struts2與Webwork2的區別

2013-11-23 19:08:44  來源: Java核心技術 
    一直在用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還是需要認真考慮一下
   


From:http://tw.wingwit.com/Article/program/Java/hx/201311/26348.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.