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

Struts 建構 MVC 應用完整指南:架構、流程與配置實戰

     編輯:Java 相關知識

Struts 作為經典 MVC 框架,將 Web 應用拆解為 Model、View、Controller 三層,透過 ActionServlet 統一入口、struts-config.xml 宣告式映射,實現業務邏輯與展示層解耦。本文從 Model 1/2 差異切入,詳細剖析 Struts 核心組件、處理流程、開發步驟與兩大配置檔要點。

Model 1 vs Model 2

  • Model 1(JSP 中心):業務邏輯、流程控制、頁面渲染混雜於 JSP,適合小型專案,擴充性差。
  • Model 2(MVC):Servlet 控制流程、JavaBean/EJB 封裝業務、JSP 專注渲染,組件化利於大型系統維護。

Struts 核心架構

層級Struts 組件職責
ControllerActionServlet + ActionMapping接收請求、映射至 Action、管理流程
ModelAction + ActionForm + 業務 Bean/EJBAction 處理邏輯、ActionForm 封裝表單資料
ViewJSP + Struts Tag Library自定義標籤綁定 ActionForm、模板化輸出

Struts UML 架構圖

Struts 組件結構圖

標準開發流程

  1. 蒐集需求 → 定義畫面原型
  2. 規劃 URL 路徑 → 設計 ActionMapping
  3. 建立 ActionForm 對應畫面欄位
  4. 實作 Action 呼叫業務邏輯
  5. 開發 JSP 頁面使用 Struts 標籤庫
  6. 撰寫 struts-config.xml、web.xml
  7. 測試、部署

關鍵配置詳解

web.xml

<servlet>
  <servlet-name>action</servlet-name>
  <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
  <init-param>
    <param-name>application</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>
<taglib>
  <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
  <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>

struts-config.xml

<form-beans>
  <form-bean name="loginForm" type="com.example.LoginForm"/>
</form-beans>

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

現代化遷移提示

  • Struts 1 已停止維護,新專案建議採用 Spring MVC、Struts 2 或微服務架構。
  • 既有系統可漸進式重構:先導入 Spring 容器管理 Bean,再以 DelegatingActionProxy 橋接 Struts Action。
  • 標籤庫可保留,JSP 頁面改動最小。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved