使用多个Struts配置

问题

你想要将一个大型的struts-config.xml文件分为多个小文件,以便改善组织和更易维护,特别是在团队开发的过程中。 

动作要领

将一个struts-config.xml分解为多个配置文件。每一个都必须是良好的struts-config.xml配置文件,并且能够通过struts-config 的xml dtd的校验。将这些文件作为ActionServlet在web.xml中的初始化参数的config的参数值应用

例如:

<servlet>

     <servlet-name>action</servlet-name>

     <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>

           <init-name>

                  <param-name>config</param-name>

                  <param-value>

                          /WEB-INF/struts-config.xml,

                         /WEB-INF/struts-config-1.xml,

                        /WEB-INF/struts-config-2.xml

                  </param-value>

          </init-name>

         <load-on-startup>2</load-on-startup>

</servlet>

动作变化

对那些不是最细微的应用而言,struts-config.xml文件会趋于变得大而笨重。许多应用可能具有数以百计的action。将这个文件结合CVS使用,那么团队中的开发人员就会访问相同的文件。

Struts 1.1 引入了对多配置文件的支持。每一个配置文件都必须是一个有效的XML 文件并且必须符合struts-config XML DTD。在可以在web.xml中将这些文件声明为ActionServlet的初始化参数config的值。你可以将这些文件指定为逗号分隔的路径列表。运行时,这些文件会在内存中合并成一个文件。如果出现重复元素,比如具有相同的name属性的两个不同的form bean 声明,则最后一个读入的配置优先。

因为只是使用多配置文件并不意味着必须要使用Struts modules。事实上,你对一个模块也可以使用多配置文件。在上面的方案中,config元素的param-name子元素的值对ActionServlet规定了默认模块的Struts 配置文件的路径。附加模块是通过config/module-name的param-name值规定的。Example 2-10 展示了一个Struts ActionServlet声明,其中具有一个默认模块和两个附加模块。默认模块是用两个配置文件,module1只使用一个配置文件,而module2使用3个配置文件。

多配置文件(多模块)

<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-default-config.xml,
      /WEB-INF/struts-default-config-2.xml
    
</param-value>
  
</init-param>
  
<init-param>
    
<param-name>config/module1</param-name>
    
<param-value>
      /WEB-INF/struts-module1-config.xml
    
</param-value>
  
</init-param>
  
<init-param>
    
<param-name>config/module2</param-name>
    
<param-value>
      /WEB-INF/struts-module2-config.xml,
      /WEB-INF/struts-module2-config-2.xml,
      /WEB-INF/struts-module2-config-3.xml
    
</param-value>
  
</init-param>
  
<load-on-startup>1</load-on-startup>
</servlet>

如果你是团队开发,可以考虑基于功能区域、用例、或者使用场景分解配置文件。每一个团对称员都可以集中于他们的职责领域而不用关心其他部分。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值