SwitchAction 主要用于模块之间的切换。当一个应用之中存在多个模块时,使用SwitchAction在不同模块之间的action之间切换还是相当方便的。
在下面的 web.xml 中,力日载了 Struts 的两个配置文件,其中一个作为系统的一个模块加载,该web.xml的配置代码如下:
<servlet><!定义 Struts的核心控制器--> <servlet-name>action</servlet-name><servlet-class> org.apache.struts.action.ActionServlet</servlet-class> <!-- 指定 Struts的第一个配置文件--> <lnlt-param><param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </inlt-param> <!--指定 Struts的第二个配置文件,作为wawa模块配置一〉 <lnlt-param><param-name>config/wawa</param-name> <param-value>/WEB-INF/struts-configl.xml</param-value> </init-param> <load-on-startup>2</load-on-startup></servlet> |
该应用包括了一个wawa 的模块,并在struts-config1.xml文件中配置一个action,该action的配置代码如下:
<action-mappings> <action path="/welcome" forward="/welcome.jsp"/></action-mappings> |
该 action 的定义非常简单,仅完成页面的转向。如果现在需要从应用的页面请求该action,可以使用如下SwitchAction。
定义 SwitchAction也相当简单,只需要定义path、type属性即可。下面是SwitchAction的定义代码:
<action-mappings><action path="/moduleSwitch"type=" org.apache.struts.actions.SwitchAction"/> </action-mappings> |
在使用 SwitchAction时,必须在请求中带两个参数:第一个是prefix,用来指定模块宅称:另一个是page,用来指定相模块中的资源路径。下面是页面中超级链接对wawa模块的 welcomeaction请求,页面的超级链接代码如下:
<a href=moduleSwitch.do?prefix=/wawa&page=/welcome.do">转入另一个模块</a> |
上面的超级链接地址中,/wawa是模块名,而page对应wawa模块下的welcome的action。