首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Struts 架構原理與核心組件深度解析

     編輯:Java 相關知識

Struts 是 Apache Jakarta 專案旗下經典 MVC 框架,基於 Servlet、JSP、JavaBeans、XML 等標準技術,實現表現邏輯與業務邏輯分離。本文系統梳理 Struts 1.x 的架構圖譜、核心組件職責、struts-config.xml 配置詳解與請求處理流程。

整體架構(Model 2)

MVC 基本流程 Struts 架構圖 核心組件關係

三層職責

層級Struts 實現說明
ModelActionForm Bean、Action、Business Delegate、DAO、EJB/Hibernate/iBATIS內部狀態與業務操作封裝,ActionForm 保存表單資料,Action 協調業務邏輯
ViewJSP + Struts TagLib (Bean/HTML/Logic/Nested/Template)國際化標籤庫簡化介面開發,支援 JSTL、Velocity、XSLT 等模板引擎
ControllerActionServlet、ActionMapping、ActionForward、struts-config.xmlActionServlet 為核心控制器,根據映射分派請求至對應 Action

核心組件對照表

組件角色
ActionServlet控制器 Servlet,接收所有請求
Action Class封裝具體業務邏輯
ActionForm表單資料載體,支援驗證
ActionMapping請求 URI 與 Action 類的映射
ActionForward邏輯視圖名稱對應實際路徑
ActionError錯誤訊息收集與回顯
Struts TagLibJSP 自定義標籤庫

struts-config.xml 四大配置區塊

  1. Global Forwards:邏輯名稱對應 JSP 路徑,供 mapping.findForward() 使用。
  2. Action Mappings:<action path="/createBook" type="BookAction" name="bookForm" scope="request" input="/CreateBook.jsp"> 定義請求路徑、Action 類、Form Bean、作用域、輸入頁與轉發邏輯。
  3. Form Beans:<form-bean name="bookForm" type="BookForm"/> 宣告表單 Bean 類別與名稱。
  4. Data Sources:JDBC 連線池配置,供 Action 透過 servlet.findDataSource("key") 取得連線。

請求處理生命週期

  1. 用戶提交請求 → ActionServlet 接收。
  2. 查找 ActionMapping,確認對應 Action 與 Form Bean。
  3. 依 scope 檢查/建立 ActionForm 實例,調用 reset()、setter() 填充資料。
  4. validate="true" 時調用 validate(),失敗回 input 頁。
  5. 驗證通過 → 呼叫 Action.execute() 執行業務邏輯。
  6. Action 回傳 ActionForward → Controller 轉發至目標視圖。

Struts 將 MVC 模式具體化為可配置、可擴展的框架,雖已被 Spring MVC 取代,但其設計思想仍具參考價值。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved