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

Struts 從零開始 (六):模組化配置實戰與跨模組跳轉

     編輯:Java 相關知識

模組化配置動機

大型專案多小組並行開發,單一 struts-config.xml 易產生版本衝突。Struts 支援多模組配置,各小組維護獨立配置檔。

配置多模組 (web.xml)

<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/conf/struts-config.xml</param-value>
    </init-param>
    <init-param>
        <param-name>config/admin</param-name>
        <param-value>/WEB-INF/conf/struts-config-admin.xml</param-value>
    </init-param>
    <init-param><param-name>debug</param-name><param-value>3</param-value></init-param>
    <init-param><param-name>detail</param-name><param-value>3</param-value></init-param>
    <load-on-startup>0</load-on-startup>
</servlet>

config/admin 對應 struts-config-admin.xml,後綴必須一致。ActionServlet 依 URL 前綴判斷模組。

URL 模式與模組對應

請求 https://localhost:8080/strutsmodel/admin/admin.do:

  • strutsmodel:Context Path
  • admin:模組前綴
  • admin.do:Action 路徑

模組配置檔範例 (struts-config-admin.xml)

<action path="/admin" type="org.zhoudq.webapp.action.AdminAction"> ... </action>

模組內所有 path 自動加上模組前綴,故完整路徑為 /admin/admin。模組內 forward 查找相對於該模組配置檔,而非全域 Context。

跨模組跳轉兩種方法

方法一:contextRelative 全域轉發

在 struts-config-admin.xml 定義全域 forward:

<forward name="switchModuleToFront"
         contextRelative="true"
         path="/front/login.do"
         redirect="true"/>

或在 Action 內部 forward 設定 contextRelative="true"。

方法二:使用 SwitchAction

配置內建 SwitchAction:

<action path="/switch" type="org.apache.struts.actions.SwitchAction"/>

請求參數:

  • prefix:模組前綴 (如 /admin)
  • page:目標資源路徑 (如 /admin.do)

範例 URL:https://localhost:8080/strutsmodel/switch.do?prefix=/admin&page=/admin.do

結語

模組化解決團隊協作配置衝突,SwitchAction 提供優雅跨模組導航。靈活運用可大幅提升大型專案維護性。

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