Struts配置多应用模块

Struts1.1支持多应用模块,即同一个应用包含多个子应用,每个子应用可以处理相关的功能,
例如,对于网上购物应用,可以又一个子应用来处理商品和商品目录信息,另外一个处理购物车和订单
所有的子应用都共享一个ActionServlet实例,但是每个子应用都有单独的配置文件,把应用划分成多个子应用有以下步骤:
a、为每个子应用创建单独的Struts配置文件;
b、在web.xml的ActionServlet的配置代码中添加每个子应用信息。
c、采用<forward>元素或SwitchAction类来实现子应用之间的切换。
例如,把某个应用划分为两个子应用模块,配置文件分别为:struts-config.xml和struts-moduleB.xml
  struts-config.xml文件中的<controller>元素的processorClass属性为默认值“org.apache.struts.action.RequestProcessor",struts-moduleB.xml文件中的该元素的processorClass属性为"CustomerRequestProcessor".
  接下来,应该在web.xml的ActionServlet的配置代码中添加每个子应用信息,代码如下
  <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/moduleB</param-name>
        <param-value>/WEB-INF/struts-moduleB.xml</param-value>
    </init-param>
  </load-on-startup>1</load-on-startup>
</servlet>
第一个<init-param>元素的param-name属性定义了config,表示配置的是默认子应用模块,第二个属性以"config/"开头,表示非默认子应用模块。
有两种办法进行子应用模块之间的切换,一种方法是实用全局或局部的<forward>元素,此时将该元素的contextRelative属性设为true,还有一种办法是使用内置的org.apache.struts.action.SwitchAction类。例如
  <global-forwards>
    <forward name = "toModuleB"
      contextRelative = "true"
      path = "/moduleB/index.do"
      redirect = "true"
    ...
  </global-forwards>
也可以使用<action>元素中的局部<forward>元素,例如
  <action-mappings>
    ...
    <action ..>
      <forward name = "success"
        contextRelative="true"
        path = "/moduleB/index.do"
        redirect ="true"/>
      </action>
      ..
    </action-mappings>
  此外,还可以使用org.apache.struts.actions.SwitchAction类,例如:
    <action-mappings>
      <action path="/toModule"
      type = "org.apache.struts.actions.SwitchAction"/>
    </action-mappings>
  如果要从默认模块切换到ModuleB,可采用与以下类似的URL:
  http://localhost:8080/toModule.do?prefix=moduleB&page=/index.do
  如果要从默认的ModuleB切换到默认模块,可采用
  http://localhost:8080/toModule.do?prefix=&page=/index.do
 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值