Struts 提供成熟的 MVC 框架骨架,規範化開發流程可大幅提升團隊協作效率。本文定義 11 步標準化開發流程,並詳細拆解 Model/View/Controller 三層在 Struts 中的具體實作職責與配置要點。
<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>
<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>
| 屬性 | 用途 | 範例 |
|---|---|---|
| path | 請求路徑 (對應 *.do) | /user/save |
| type | Action 實作類別完整名稱 | com.app.action.UserSaveAction |
| name | ActionForm Bean 名稱 | userForm |
| scope | FormBean 作用域 | request / session |
| input | 驗證失敗返回頁面 | /user/form.jsp |
| validate | 是否執行 FormBean.validate() | true / false |
| forward/include | 頁面導向/包含 (舊版單一導向) | /success.jsp |
Struts 以「配置驅動 MVC」核心哲學,將 Controller 基礎設施框架化,開發者專注於 ActionMapping 配置、ActionForm 設計、Action 流程控制與 JSP 標籤庫開發。11 步流程確保需求→設計→實作→配置→驗證完整閉環。雖 Struts 1.x 逐漸退出歷史舞台,但其「前端控制器 + 命令模式 + 攔截器鏈 + 模板方法」架構精髓,完整傳承至 Spring MVC、WebWork/Struts2 等現代框架。