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

Struts 構建 MVC 系統標準化開發流程與分層實作指南

     編輯:Java 相關知識

Struts 提供成熟的 MVC 框架骨架,規範化開發流程可大幅提升團隊協作效率。本文定義 11 步標準化開發流程,並詳細拆解 Model/View/Controller 三層在 Struts 中的具體實作職責與配置要點。

11 步標準化開發流程

  1. 需求收集與定義:業務用例、驗收標準
  2. 畫面設計:基於資料採集/顯示原則定義「螢幕顯示」規格
  3. 路徑規劃:為每個畫面定義唯一存取路徑 (Action 路徑)
  4. ActionMapping 設計:建立路徑與業務邏輯的對應關係
  5. 支援物件開發:DAO、Service、DTO、Utility 等輔助類別
  6. ActionForm 設計:依畫面資料屬性建立對應 FormBean
  7. Action 開發:實作 `execute()` 處理請求、協調 Model、選擇 Forward
  8. 業務邏輯開發:JavaBean/EJB/Service 核心商業規則
  9. JSP 視圖開發:對應 ActionMapping 流程建立頁面
  10. 配置檔建立:`struts-config.xml`、`web.xml` 完整配置
  11. 測試/部署/迭代

四層架構在 Struts 中的具體實作

1. Model 層:業務核心

  • ActionForm 衍生類:封裝表單資料、驗證邏輯 (`validate()`)、重置 (`reset()`)
  • Action 衍生類:控制流程進入點,`execute()` 中協調 Service、轉向 Forward
  • 業務元件:JavaBean (Service/DAO)、EJB、Spring Bean — 實際商業邏輯載體
  • 資料傳輸物件:DTO/VO 跨層傳遞資料

2. Controller 層:Struts 核心基礎設施

  • ActionServlet:單一前端控制器,攔截 `*.do` 請求
  • RequestProcessor:請求處理模板方法 (可擴充自定義處理流程)
  • ActionMapping 配置:開發者核心配置工作,定義路徑→Action→Form→Forwards 映射

3. View 層:標籤庫驅動的零代碼頁面

  • HTML 標籤庫:`` 綁定 Action、表單元件自動填充 FormBean
  • Bean 標籤庫:`` 顯示資料、`` 定義頁面變數
  • Logic 標籤庫:`` 迭代集合、條件顯示 — 替代 JSP Scriptlet
  • Tiles 標籤庫:頁面佈局模板化、片段重用

4. 配置層:雙配置檔協作

web.xml:容器級啟動配置


<servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
        <param-name>config</param-name>
        <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>

struts-config.xml:應用級 MVC 映射


<struts-config>
    <form-beans>
        <form-bean name="loginForm" type="com.app.form.LoginForm" />
    </form-beans>

    <action-mappings>
        <action path="/login" 
                type="com.app.action.LoginAction"
                name="loginForm"
                scope="request"
                input="/login.jsp">
            <forward name="success" path="/welcome.jsp" />
            <forward name="failure" path="/login.jsp" />
        </action>
    </action-mappings>

    <message-resources parameter="ApplicationResources" />
</struts-config>

ActionMapping 核心屬性對照表

屬性用途範例
path請求路徑 (對應 *.do)/user/save
typeAction 實作類別完整名稱com.app.action.UserSaveAction
nameActionForm Bean 名稱userForm
scopeFormBean 作用域request / session
input驗證失敗返回頁面/user/form.jsp
validate是否執行 FormBean.validate()true / false
forward/include頁面導向/包含 (舊版單一導向)/success.jsp

最佳實踐精要

  1. Action 僅做流程控制:不含業務邏輯,委派 Service 層
  2. FormBean 僅做資料承載與簡單驗證:複雜業務驗證移至 Service
  3. Forward 集中管理:`struts-config.xml` 定義所有導向,JSP 無硬編碼路徑
  4. 模組化配置:大型專案拆分多 `struts-config-module.xml`,`` 載入
  5. 國際化優先:所有訊息鍵值化,``
  6. 例外處理統一:`` 配置錯誤頁面導向

總結

Struts 以「配置驅動 MVC」核心哲學,將 Controller 基礎設施框架化,開發者專注於 ActionMapping 配置、ActionForm 設計、Action 流程控制與 JSP 標籤庫開發。11 步流程確保需求→設計→實作→配置→驗證完整閉環。雖 Struts 1.x 逐漸退出歷史舞台,但其「前端控制器 + 命令模式 + 攔截器鏈 + 模板方法」架構精髓,完整傳承至 Spring MVC、WebWork/Struts2 等現代框架。

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