本文翻譯自 Struts 官方使用手冊第一章,梳理 Java Web 開發從 Servlet/JSP 到 Model 2/MVC 架構演進脈絡,闡述 Struts 1.x 核心組件(ActionServlet、ActionMapping、ActionForm、自定義標籤庫)職責與協作流程。
out.println() 輸出 HTML,維護困難、易錯。html:、bean:、logic:、tiles: 等)。ActionForm、邏輯控制流、版面佈局。struts-config.xml 建立配置物件。Action 類別,可攜帶額外屬性(如角色權限、轉向邏輯名稱)。org.apache.struts.action.Action 子類,execute() 方法封裝業務調用、結果解析、轉向視圖。ActionServlet 載入 struts-config.xml → 建立 ActionMapping 集合。ActionServlet 查詢映射 → 實例化/重用 Action → 呼叫 execute()。Action 可存取 HttpServletRequest/Response/Session/Application 共享上下文。ActionForward 轉向 JSP。org.apache.struts.action.ActionForm 定義表單欄位屬性。validate() 方法執行伺服器端驗證<html:errors/> 顯示錯誤execute() 取得 Form Bean 繼續處理struts-config.xml 宣告 <form-bean> 對應名稱與類別,Controller 依名稱查找實例化。<html:text property="username"/> 自動綁定 Form Bean 屬性。ApplicationResources.properties 訊息資源,支援多語系切換。「Action 僅負責流程控制與錯誤處理,具體業務邏輯委託獨立 JavaBean/EJB,不直接依賴 Web 物件,確保邏輯可移植性。」
// 典型資料庫應用分層 Action → 呼叫 Business Bean (POJO/EJB) Business Bean → JDBC/EJB 查詢資料庫 → 回傳領域物件/DTO Action → 將結果放入 Form Bean / Request 屬性 JSP → 讀取屬性渲染 HTML
Struts 以標準化 MVC 實作、豐富標籤庫、聲明式配置、國際化支援,確立了 Java Web 框架早期標準。雖然 Struts 1.x 已進入維護模式(Struts 2 / Spring MVC 為主流),但其前端控制器、命令模式 Action、表單 Bean、聲明式映射等核心設計思想,深刻影響後續框架架構,理解其本質對掌握現代 MVC 框架極有助益。