回 OPENHOME 首頁
開源框架: Struts Gossip
Model 2 是現在設計Web應用程式的一個主流模式,也是經過驗證最好的Web層架構模式之一,在1999年2月的JavaWorld大會上,Govind Seshadri的
Understanding JavaServer Pages Model 2 architecture
中清楚的指出了Model 2 是一種 MVC 模式。
Struts
是支持Web MVC開發模式的 Framework, 由
Craig McClanahan
於2000年3月發起的專案,目前是
Apache
專案中的一個子專案,即使 Struts 目前有許多稱其設計不良的非議之聲,但其使用人員多,文件豐富,目前來說仍是業界開發Web應用程式時一個接受度很高的MVC Framework選擇。
Struts API
這邊會將我對Struts的瞭解整理起來,整理過程中所使用的Servlet Container是
Tomcat
5.5.4,Struts版本是1.2.4,Struts 1.2之後也作了不少改進,您可以看看
1.2 的 Release Notes
瞭解一些改變的內容。
Struts 核心框架
Struts中支 持MVC的主要類別及一些輔助類別,在這 邊先不使用Struts標籤庫(Tag Library),這會讓我們更瞭解Struts中MVC的運作流程。
Struts 基本工作流程
第一個 Struts 程式
簡介 RequestProcessor
簡介 ActionMapping
簡介 Action
訊息管理
國際化訊息
使用 ActionForm
伺服端表單驗證
例外處理
Struts 輔助方案
除了基本的MVC 架構支援之外,對於一些實際開發時可能面 對到的進階議題,Struts提供了一些輔助方案,您可以先考慮這些方案是否合用,以節省開發類似工具所要花費的時間。
使用 DispatchAction
使用 LookupDispatchAction
使用 DynaActionForm
Map-backed ActionForm
ActionMappings 通配字元
模組化程式
Plugin 介面
取得 DataSource
檔 案上傳
Struts 標籤庫
如果您的View層技術是使用JSP,而且您想要快速開發,充分利用Struts框架的功能,您就可以使用Struts標籤庫,儘量飽受批評,但使用它確 實可以省不少功夫。
使用 Struts 標籤
Bean 標籤
如果您使用的是 JSP 2.0以下的版本,Bean標籤可以讓您不必撰寫scriplet就取得Servlet相關的訊息,若您使用的是JSP 2.0,則可以使用Expression Language及其隱含物件來取代一些Bean標籤。
<bean:write>
<bean:message>
其它 Bean 標籤參考
Html 標籤
Struts的 Html標籤元件用以取代一些靜態HTML 元件,這可以讓您在JSP頁面上利用 Struts框架的資源,像是ActionForm綁定、統一的訊息管理等,但得到好處的同時,您所付出的是View層與Struts框架的耦合度可能會 因此增加。
<html:messages>
<html:form>、 <html:text>、<html:password>、<html: submit>
其它 Html 標籤參考
Logic 標籤
Logic標籤主 要與頁面呈現邏輯相關,根據指定的條件來 決定來呈現必要的元件,Struts的 Logic標籤重疊到JSTL中的部份標籤,所以建議您將Struts的Logic標籤當作JSTL外的輔助標籤。
其它 Logic 標籤參考
輔助框架
在Struts中整合了Validator驗證框架,以及Tiles模版引擎,這邊一併簡介它們的使用方式。
Validator 框架
Jakarta Commons Validator
框架可以將驗證邏輯移至ActionForm之外,輔助Struts開發人員使用或自訂客戶端與伺服端的驗證工作。
設置 Validator 框架
客戶端驗證器
伺服端驗證器
Validator 訊息管理
內建驗證器
自訂驗證器
Tiles 模版引擎
Tiles是一個 模版引擎(Template Engine),它可以讓網頁的配置(Layout)標籤與內容分離,提供一個版面管理機制。
設置 Tiles 模版引擎
使用 XML管理模版資源
使用 JSP管理模版資源
參考資料
Struts的參考資料不少,隨便
Google
都會有一堆,但多數為英文,中文資源比較零散,這邊收集幾個比較完整的Struts資源網站。
Struts API
Struts User Guide
Struttin' With Stuts
Struts User Guide 簡體中文翻譯
developerWorks Struts 專題
theserverside struts 免費電子書