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

Struts 與 Tiles 結合支援基於元件的 Web 開發

     編輯:Java 相關知識

前言

MVC 框架是建構模組化、關注點分離應用的經證實方法。Struts 是 Java 世界最知名的開源 MVC 實現。近期 Struts 整合 Tiles 視圖元件框架,強化基於元件開發支援,提升可重用性與一致性。本文說明 Struts+Tiles 為何是 Web 應用開發最佳工具組合,並示範如何起步 (涵蓋 Struts 0.9 之後的變更)。

Web 開發演進與 MVC 採納

早期 Web 開發混雜 HTML、邏輯、資料,維護困難。JSP 與標籤庫改善但仍有缺陷:控制流程分散、錯誤處理笨拙、表單值保留繁瑣。Struts 解決這些問題:集中控制流、自動化表單處理、分離業務邏輯與視圖。

Struts 與 Tiles 背景

  • Craig McClanahan (Tomcat 技術主管) 創立 Struts,獲 Sun、IBM 支援
  • Struts 1.1 整合 Tiles 模板庫,提供強大視圖組合能力
  • 兩者皆遵循 JSP 標籤庫規範,標籤可混合使用

安裝 Struts 與 Tiles (以 Tomcat 4.0.3、Struts 1.1-b1 為例)

  1. J2SE 1.4 SDK、Ant 1.4.1
  2. Tomcat 4.0.3 (設定 TOMCAT_HOME)
  3. Struts 1.1-b1 (設定 STRUTS_INSTALL)
  4. 下載範例程式 struts-tiles-examples.tgz 解壓得 ex1、ex2、ex3
  5. 啟動 Tomcat 驗證 https://localhost:8080/examples

範例 1:傳統頁面中心模式

  • 部署:cd EX1_INSTALL; ant deploy
  • 瀏覽 https://localhost:8080/ex1
  • 缺點:公共元素硬編碼重複、佈局變更需改每頁、錯誤處理程式碼重複、業務邏輯與視圖耦合、無集中流程描述

範例 2:Struts + Tiles 改良版

  • 部署:cd EX2_INSTALL; ant deploy
  • 瀏覽 https://localhost:8080/ex2
  • 目錄結構:tiles-components 存放視圖元件、tiles-layouts 存放佈局、tiles-defs.xml 定義元件組合

Struts 配置亮點 (struts-config.xml)

  • DynaActionForm:無需撰寫 Java 類別即可在 XML 定義表單屬性,自動建立 Bean
  • forward 目標可指定 Tile 定義名稱 (如 tile.profileInput),邏輯名稱取代物理路徑

Tiles 定義 (tiles-defs.xml) 核心機制

  • <definition name="rootLayout" path="/tiles-layouts/rootLayout.jsp"> 定義基礎佈局
  • 佈局頁面使用 <tiles:insert attribute="panel1"/> 插入元件
  • 繼承機制:<definition name="tile.profileInput" extends="rootLayout"> 繼承基礎佈局並覆寫特定區域 (如 panel3)
  • 修改元件只需調整定義檔與佈局頁,不動業務邏輯

實戰:動態新增天氣元件 (panel4)

  1. 在 tiles-defs.xml rootLayout 定義加入 <put name="panel4" value="/tiles-components/panel4.jsp"/>
  2. 在 rootLayout.jsp 對應位置加入 <tiles:insert attribute="panel4"/>
  3. 重新部署即見效果,零業務邏輯修改

範例結構

Struts + Tiles 優缺點總結

優點說明
維護容易、模組化程度高Tiles 輕鬆增減重組視圖元件;Struts 同樣管理行為與邏輯
公共輸入輸出預建方案Struts 自動處理表單與錯誤;Tiles 便利組裝輸出窗格
業務邏輯與 UI 並行開發Java 開發與圖形設計分離
集中映射管理struts-config.xml、tiles-defs.xml 提供全局視野
缺點說明
學習曲線陡峭檔案多、配置複雜,小專案額外負擔較大

進階特性預覽

  • 驗證器框架:validator.xml 宣告式驗證 (required、mask、date、email 等),減少手寫驗證碼
  • 容器管理安全整合:根據用戶角色條件顯示 Bean 資料與視圖元件
  • 國際化 (I18N):訊息資源檔支援多語言動態切換

未來展望

  1. 工作流管理系統:建模多步驟業務流程,自動生成協調代碼
  2. 標籤庫標準化:Struts 標籤併入 JSP 標準標籤庫 (JSTL),擴大普及度與人才庫

核心收穫

  1. MVC 是健壯 Web 軟體優秀架構;頁面中心模式隨規模增長失效
  2. Struts + Tiles 符合 MVC 範式,提供堅實基礎支撐業務增長
  3. 強大產業支援確保廣泛採用,保護投資
  4. 擁有 Struts + Tiles,建立 Web 應用更容易
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved