財務系統業務邏輯複雜、需求變更頻繁 (結算、返款、賬簿查詢、科目維護等)。早期過程式開發導致數據層 SQL 與表示層 HTML 混雜,維護極其困難。引入 Struts 實現 MVC 分層,解決耦合問題。
| MVC 角色 | Struts 實現組件 | 職責 |
|---|---|---|
| Model | JavaBean / EJB 組件 | 封裝業務邏輯、數據訪問、狀態管理 |
| View | JSP + Struts 標簽庫 / 自定義標簽 | 數據展示、用戶交互,無業務邏輯 |
| Controller | ActionServlet + Action 類 | 請求分發、流程控制、Model 調用、視圖選擇 |
配置文件:web.xml (標準部署描述符) + struts-config.xml (Struts 專用路由/映射配置)
index.jsp (菜單)
→ 客戶結算頁面 (填寫:客戶名/銷售單編碼/支付方式/收款信息)
→ 提交 → CtmBAction.execute()
→ 成功 → 結算單頁面
→ 失敗 → 錯誤信息頁面
process() → 選擇模塊、載入配置/消息資源execute()execute() 調用 業務代理 (CtmBEJBDelegateImpl) → 查找 JNDI ejb/CtmBEJB → 調用 EJB 業務方法ActionForwardActionServlet 根據 Forward 轉發/重定向到目標 JSP[Web層: Struts] → [業務代理層] → [EJB容器: Session Bean] → [業務對象層 BO] → [DAO層: OJB持久化框架] → [數據庫]
validate() 完成格式/業務規則校驗 (如金額非空、編碼格式)struts-config.xml 集中管理路由、Forward、FormBean 作用域,修改流程無需改 Java 代碼Struts 為大型 Web 應用提供了成熟的 MVC 框架結構。財務系統案例證明:通過 ActionServlet 統一控制、ActionForm 自動綁定驗證、Action 委派業務代理調用 EJB、BO 豐富領域模型、OJB 透明持久化,實現了表現層與業務層的徹底分離。業務需求變更時,僅需調整 Model 層組件,系統擴展性與可維護性顯著提升。