「模型-視圖-控制器(MVC)」 框架對於生成有組織的模組化應用程式(清楚劃分邏輯、樣式與資料),是經證實且方便的方法。在 Java 世界中,Struts 是最聞名、最常被討論的開放原始碼 MVC 實作之一。Struts 開發團隊近期增強核心功能,並整合 Tiles 視圖元件框架 強化基於元件開發支援,以提高可重用性與一致性。本文說明 Struts 與 Tiles 組合為何是建立 Web 應用程式的最佳工具組,並示範如何起步,重點講述 Struts 0.9 版後的變更。
作者回顧 80 年代中期學習軟體開發經驗:最初兩個月用線性流程、內嵌顯示/邏輯/資料撰寫巨獨程式碼。隨經驗累積,學會封裝物件、分離資料與邏輯、重構共用程式碼、實踐良好程式設計原則。
1994 年 Web 應用開發剛起步,工具稀少,應用程式混雜 HTML 與應用邏輯。UI 變更與業務邏輯更新在大型應用中極其困難昂貴,因緊耦合的呈現與邏輯導致錯誤與進度緩慢,且要求開發者具備 UI 設計知識或與美術設計師緊密配合,造成時間浪費。
JSP 技術與標籤引入後稍微改善,能將邏輯與顯示分離,UI 設計師專注顯示,開發者專注邏輯。但缺陷仍存:某些操作(如表單驗證)開發仍困難。典型表單驗證流程:
若僅用 JSP 頁面,控制從一頁「路由」至另一頁難以管理。想將步驟 3、4 合併?多個 JSP 如何追蹤連結關係?修改檔名位置怎麼辦?步驟 2 偵測錯誤時,如何重顯原表單並保留使用者已輸入值?Struts 開放原始碼 MVC 框架解決所有這些問題,讓開發者工作更輕鬆。
Malcolm Davis 的 developerWorks 文章涵蓋 Struts 0.9 功能;本文簡述 0.9 後變更及未涵蓋主題。當前釋出版為 1.0.2,2002/03/19 有 1.1-b1 測試版(僅修錯,正式版即將釋出)。新專案建議以 1.1 程式碼為基礎,本文即以此為討論基準。
本文僅涵蓋 Jakarta Tomcat 4.0 (Catalina) 最小安裝步驟。其他應用伺服器請參閱手冊。