Struts1.1中的多模块配置

       web容器为每一个web应用创建一个上下文,上下文映射到服务器webapp下的一个子目录,同样,Struts1.1允许为每一个模块创建一个前缀。

      每一个模块可以运行在同一个web应用下,但它们具有不同的前缀,就像具有不同上下文的web应用运行在同一个web容器下一样;

       当我们写web应用的时候,通常指的是上下文相对路径,这个路径不包括该应用的上下文名称。
同样,当写Struts应用的时候,通常指的是模块相对路径,这个路径不包括模块名称或前缀.

       下面是同一URI的绝对路径、上下文相对路径、模块相对路径

绝对URL:http://localhost/myApp/myModule/myAction.do
域相对路径:/myApp/myModule/myAction.do
上下文相对路径:/myModule/myAction.do
模块相对路径:/myAction.do

          我们可以编写Struts应用模块,通过配置运行在任何前缀下;写一个模块与写一个独立的应用没什么两样。
所有的配置只须在web.xml中描述,所以应用模块可以不同的前缀下移动,包括ROOT,而不须要更改任何程序代码。

         下面是web.xml中配置的一部分, business、pay都是前缀:

 <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>debug</param-name>
      <param-value>2</param-value>
    </init-param>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
      <param-name>config/business</param-name>
      <param-value>/WEB-INF/struts-config-business.xml</param-value>
    </init-param>
  <init-param>
      <param-name>config/pay</param-name>
      <param-value>/WEB-INF/struts-config-pay.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>

        在这种情况下,负责business模块的人员和负责pay模块的人员完全可以独立开发,互不干扰。Struts自会调整这些前缀。
 
       Struts将会调整所有在模块中的url,struts-config-business.xml、struts-config-pay.xml中所有的path都是模块相对路径,在 Struts处理的时候将会自动加上前缀构成它们的上下文路径,如struts-config-business.xml的配置:
      
            <action    path="/addCo"
                             validate="true"
                            scope="request"
                            name="addCoForm"
                           forward="/addco.jsp">
            </action>

 
         在Struts处理的时候,/addCo将会处理成/business/addCo.do, /addco.jsp将会处理成/business/addco.jsp;
 同样的,在business目录下所有静态的HTML、IMG(包括jsp中的IMG)等都是与前缀有关系的。

 WEB下对应的目录结构:
  └─webapp
   │  index.jsp
   ├─bussiness
   │      addco.jsp
   ├─META-INF
   │      MANIFEST.MF
   └─WEB-INF
    │  struts-config.xml
    │  struts-config-business.xml
    │  struts-config-pay.xml
    │  web.xml
    │ 
    ├─classes
    │  │

          如需要更改前缀,只需要更改配置文件web.xml和webapp下相应的目录名即可,无须更改任何代码。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值