1. 程式人生 > >struts1與sturts2的區別(struts2是struts1和webwork的結合體)

struts1與sturts2的區別(struts2是struts1和webwork的結合體)

1、struts1要求Action類繼承一個抽象基類,而不是介面。
struts2的action類可以實現一個action介面,也可以實現其他介面。
2、sturts1 action是單例模式,執行緒是安全的。
struts2 action執行緒是不安全的,action為每一個請求都生成了一個例項。
3、sturts1過去依賴serlet API,不容易測試。
struts2不依賴於容器,允許Action脫離容器單獨被測試。
4、Struts1 使用ActionForm物件捕獲輸入。所有的ActionForm必須繼承一個基類。
Struts 2直接使用Action屬性作為輸入屬性,消除了對第二個輸入物件的需求。
5、Struts1 整合了JSTL,因此使用JSTL EL。這種EL有基本物件圖遍歷,但是對集合和索引屬性的支援很弱。
Struts2可以使用JSTL,但是也支援一個更強大和靈活的表示式語言--“Object Graph Notation Language” (OGNL).
6、Struts 1使用標準JSP機制把物件繫結到頁面中來訪問。
Struts 2 使用 "ValueStack"技術,使taglib能夠訪問值而不需要把你的頁面(view)和物件繫結起來。
7、Struts 1 ActionForm 屬性通常都是String型別。Struts1使用Commons-Beanutils進行型別轉換。
Struts2 使用OGNL進行型別轉換。提供基本和常用物件的轉換器。
8、Struts 1支援在ActionForm的validate方法中手動校驗,或者通過Commons Validator的擴充套件來校驗。
Struts2支援通過validate方法和XWork校驗框架來進行校驗。
9、Struts1支援每一個模組有單獨的Request Processors(生命週期),但是模組中的所有Action必須共享相同的生命週期。
Struts2支援通過攔截器堆疊(Interceptor Stacks)為每一個Action建立不同的生命週期。堆疊能夠根據需要和不同的Action一起使用。