假设一个应用中存在以下三个模块: 默认模块, module1 , module2
先来看一下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/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>config/module1</param-name>
<param-value>/WEB-INF/sample/struts-module1-config.xml</param-value>
</init-param>
<init-param>
<param-name>config/module2</param-name>
<param-value>/WEB-INF/office/struts-module2-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
上面就完成了多模块的配置,下来是各个模块之间的切换
1 . 默认模块(index.jsp) → module1中的页面
<html:link module="/module1" action="/gotoModule1">module1中的页面</html:link>
或者:<html:link href="/module1/welcome">module1中的页面</html:link>
2 子模块(module1) → 默认模块(index.jsp)
<html:link action="../defaultModule">转到默认模块</html:link>
3 子模块(module1) → 子模块(module2)
<html:link module="/module2" action="/gotoModule2">转到子模块2的页面</html:link>
各自模块的struts-config.xml配置
默认模块(WEB-INF/struts-config.xml)
<action-mappings>
<action path="/defaultModule" forward="/index.jsp"></action>
</action-mappings>
子模块1(WEB-INF/module1/struts-config.xml).
<action-mappings>
<action path="/gotoModule1" forward="/index.jsp"></action>
</action-mappings>
子模块2(WEB-INF/module2/struts-config.xml)
<action-mappings>
<action path="/gotoModule2" forward="/index.jsp"></action>
</action-mappings>
注意:link中跳转的页面必须通过 action方式进行跳转,如果直接写某模块下的index.jsp,
只是跳转到该页面,但是并没有完成模块之间的切换。
3 跨模块表单提交(使用SwitchAction)
默认模块(WEB-INF/struts-config.xml)
<action-mappings>
<action path="/addUserSwitch" type="org.apache.struts.actions.SwitchAction"></action>
</action-mappings>
子模块1(WEB-INF/module1/struts-config.xml)
<action-mappings>
<action path="/addUser" type="action类"></action>
</action-mappings>
JSP
<html:form action="/addUserSwitch?prefix=/Module1&page=/addUser.do">
</html:form>