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

Struts 設計反思:ActionForm 與 PO 合一、Tiles 內聯優化

     編輯:Java 相關知識

專案現狀:Hibernate + Struts 小專案,框架已搭建

發現原框架不規範:JSP 混雜 Scriptlet、大量 HQL 直接查詢、ActionForm 與 PO 分離導致修改頻繁 (改欄位動輒改 PO、Form、HBM、Action)。

痛點一:ActionForm 與 PO 重複定義

現行模式:Action 從 DAO 取 PO → 複製到 ActionForm → 頁面顯示;表單提交 → ActionForm 複製回 PO → DAO 持久化。欄位變更需同步修改 PO、Form、HBM,極其繁瑣。

構想:合併 ActionForm 與 PO

  • 讓 PO 實作 ActionForm 或改為 Interface,struts-config.xml 中 type 指向 PO 類。
  • 優點:消除重複屬性與複製代碼,開發效率大增。
  • 缺點:驗證邏輯混入持久化物件,違反關注點分離;大型專案不推薦,小專案可權衡採用。

痛點二:Tiles 碎片化導致維護困難

現行 list.jsp 引入 main.jsp 再 put listbody.jsp,產生層層嵌套的微小 JSP 片段,文件數暴增、不直觀、難調試。

構想:Tiles 內聯定義

<tiles:insert page="/layouts/main.jsp">
  <tiles:put name="body">
    <!-- 直接寫內容,不再獨立檔案 -->
    <table>...</table>
  </tiles:put>
</tiles:insert>
  • 優點:一目了然、減少檔案、簡化數據傳遞。
  • 缺點:失去片段複用性。但 Tiles 主旨為「組裝版面、簡化佈局修改」,複用非核心需求。

結語

框架服務於專案,小團隊、短週期下,適度妥協 (Form/PO 合一、Tiles 內聯) 能換取巨大開發效率提升。關鍵在於團隊共識與代碼審查把關。

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