Struts 2.0的新特性
Struts 2.0框架中出現(xiàn)的許多特性旨在讓Struts更容易使用:
· 改進的設(shè)計: 與Struts 1相比,Struts 2的所有類都基于接口,核心接口獨立于HTTP。這些API并不依賴服務(wù)器小程序API。
· 簡化的Action: Struts 2 Action類獨立于框架,是簡化的普通Java對象(POJO)。擁有execute()方法的任何Java類都可以用做Action類。
· POJO表單: Struts 2不支持ActionForms特性。ActionForms中定義的屬性可以直接放在Action類上。不需要使用所有的String屬性。
· 智能默認值: Struts 2配置文件中的大多數(shù)配置元素都會有默認值,所以不需要設(shè)定值,除非需要不同的值。這有助于減少在XML文件中需要進行的配置。Struts 2支持注釋,這帶來了更大的方便。
· 改進的結(jié)果: 在Struts 2中,forward<標簽被<result>標簽取代。不像 ActionForwards,Struts 2結(jié)果可以幫助準備響應(yīng),并提供構(gòu)建多種輸出類型的靈活性。
· 改進的標簽: Struts 2標簽不單單發(fā)送輸出數(shù)據(jù),還能提供樣式表驅(qū)動標記,這樣就可以用較少的代碼構(gòu)建一致性頁面。Struts 2標簽現(xiàn)在可與FreeMarker、Velocity及類似模板引擎配合使用。
· 引入攔截器: Struts 2為攔截器(interceptor)提供了全面支持。攔截器可在Action類執(zhí)行前后加以執(zhí)行。攔截器經(jīng)配置后,可以把工作流程或者驗證等常見功能作用到請求上。所有請求通過一組攔截器傳送,之后再發(fā)送到Action類。Action類被執(zhí)行后,請求按照相反順序再次通過攔截器傳送。
· 支持Ajax: 為了創(chuàng)建使用Ajax的動態(tài)Web應(yīng)用,Struts 2提供了Ajax主題,從而大大改進了交互應(yīng)用。面向Ajax的Struts 2標簽基于Dojo窗口組件。還有用于其他框架的插件。
· 快速啟動: 部署配置文件可以重新裝入; 因而,可以動態(tài)地進行許多變化,用不著重新啟動Web容器。
· 狀態(tài)復(fù)選框: Struts 2框架可自動跟蹤復(fù)選框,如果缺少了某復(fù)選框,就會采用默認值false。因而,不像在Struts 1中,復(fù)選框不需要對false值進行特殊處理。
· 易于測試: Struts 2 Actions獨立于HTTP,因而與框架中立。無須使用模擬對象(mock object),就很容易測試。
· 使用注釋: 使用Struts 2開發(fā)的應(yīng)用可以使用Java 5注釋,作為XML和Java屬性配置之外的一個替代辦法。注釋盡量減少了對XML的需要。Action、攔截器、驗證及類型轉(zhuǎn)換方面都有注釋。
· 易于插入: 只要把插件JAR文件放到\WEB-INF\lib目錄中,即可輕松安裝Struts 2插件,不需要手動配置。
· 便于與Spring集成: Struts 2 Action能夠感知Spring(Spring-aware)。只要為某個應(yīng)用添加Spring beans,就可以添加對Spring的支持。