Struts 作為 Apache Jakarta 專案(2002 年發布),提供成熟的 MVC 框架,整合 Servlet、JSP、標籤庫與 OO 技術。核心思想:控制器 接收請求 → 分派 Action 處理業務邏輯 → Model 封裝資料 → View (JSP) 渲染回應。
| MVC 角色 | Struts 實現類別 | 職責 |
|---|---|---|
| Controller | ActionServlet、ActionMapping | 請求入口、URL 到 Action 的映射、生命週期管理 |
| Model | Action、ActionForm、JavaBean/EJB | 業務邏輯處理器、表單資料封裝、資料存取 |
| View | JSP + Struts 標籤庫 | 頁面渲染、資料呈現、使用者互動 |
ActionServlet 攔截,根據 struts-config.xml 映射至對應 ActionAction 呼叫商業邏輯 Bean(連接資料庫、查詢)ActionForm(Form Bean)Action 返回 ActionForward,轉發至指定 JSPjsp:useBean,便利操作 JavaBean標籤庫部署:將 .tld 放入 WEB-INF,在 web.xml 註冊 <taglib>,JSP 頁面引入即可使用。
ActionForm 為抽象類別,開發者繼承建立具體 Form Bean(如 UserActionForm)。Struts 自動檢查實例存在性、以 HttpServletRequest 參數填充屬性、傳遞給 Action 前完成狀態更新,實現 View 與 Model 間的資料綁定。
servlet.jar(含 Servlet/JSP API)DataSource)應用部署步驟:複製 struts.jar、commons-*.jar 至 WEB-INF/lib;複製標籤庫描述檔至 WEB-INF;配置 web.xml 定義 ActionServlet 與映射;建立 struts-config.xml 定義 Action Mapping;JSP 頁面引入標籤庫宣告。