程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Unmi的Struts2學習筆記(一)

Unmi的Struts2學習筆記(一)

編輯:關於JAVA

Struts 從1.1使用到1.3已有多年,都升成2了,卻來了個大變臉,須重新審視 一番了。從頭學習,記下筆記,以要點式。

1. Struts2 與 Struts1 似乎沒什麼血緣關系了,承自於 WebWork,直害 WebWork 不再推出新版本了,原先的 WebWork 使用者只需順其然,即是水道渠成 ;相反 Struts1 的開發經驗對於 Struts2 卻沒有太大的幫助。

2. Struts1 的核心控制器是 ActionServlet,而 Struts2 的核心控制器是 FilterDispatcher。Struts2 的業務 Action 會在運行時生成 Action 代理。

3. Struts1 的 Action 須繼承抽象 Action 類,侵入了 Servlet API;而 Struts2 的 Action 可以實現 ActionSupport,或者只要一個純淨的 POJO 來充 當,完全與 Servlet 絕緣。也因此帶來測試性 Struts2 要比 Struts1 強,可把 Struts TestCase 扔到一旁去了。

4. Struts1 在運行時一個 Action 只會生成一個實例,而 Struts2 中的 Action 會應對每個請求生成新的實例,在線程安全性方面,Struts1 要多些考慮 。

5. Struts1 依靠 ActionForm 來接受數據,它也是依賴於 Servlet API ,並 非普通的 JavaBean,而 Struts2 可在 Action 屬性中獲取請求的屬性,當然也 能封裝在一個獨立的 POJO 中。不過提醒一下,在 Struts1.3 中也可以用 POJO 來接受請求屬性,但使用起來有點煩瑣。

6. Struts2 使用了新的 OGNL 的表達式語言,可以訪問值棧,在對集合和索 引屬性的支持上功能更強大。

7. Struts1 的配置文件只需 struts-config.xml;Struts2 的配置文件有 struts.xml 和 struts.properties。struts.properties 中有兩個 struts.devMode = fase 和 struts.configuration.xml.reload = true 很可愛 ,分別設置當前是開發還是生產模式,以及 struts.xml 改變後是否自動重新加 載,免去了改配置手工重啟應用的必須步驟。

8. Struts2Action 的 execute() 無參,返回的是一個字符串,不像 Struts1 Action 的 execute() 有一大串且不說,光是返回 ActionForward,就讓這個 Action 與 Struts1 脫不了干系;還是 Struts2 來得聰明,只返回個中性的 String,反正名字嗎,猛然間這個 Action 也成 POJO 了,復用性增強了,難怪 專門有一書,名為《POJO In Action》。

9. Struts1 的視圖只支持 JSP,這也不怪它,只怨出身太早,那時就只有 JSP 一種表現層。相比,Struts2 更有艷福,能貼近於 FreeMarker、Velocity、 XSLT、PDF 等視圖技術。

10. Struts2 提供了功能強大復雜的標簽庫,統一化為 "s" 前綴。並順應時 代潮流地加入了 AJAX 的支持。還提供了更友好的驗證功能。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved