现在的位置: 首页 > 综合 > 正文

用Struts1.1进行模块化开发

2013年10月28日 ⁄ 综合 ⁄ 共 1405字 ⁄ 字号 评论关闭
      struts1.1与1.0相比,给予团队开发很大的支持。这主要体现在它现在可以使用多个配置文件。使用多个配置文件,有两种方式:

      1、在web.xml中以逗号分隔来配置多个config文件。这是对多模块开发的简单支持,每个开发人员可以配置自己config文件,但是带来的问题是,多个config文件中,不能有同名的action、或actionForm的定义。
      2、在web.xml中配置多个模块,每个模块使用单独得config文件。这是真正意义上的多模块,即使每个模块中有相同名  字的定义,也不要紧。
 
      第一种配置的方法很简单:在web.xml中这样定义:
     
          config          /WEB-INF/struts-config.xml,
                       /WEB-INF/struts-config-registration.xml
         
       

      使用的时候,这和把所有配置内容写到一个config文件中没有区别。
 
      第二种是这样:
      1、为每个模块准备一个配置文件
      2、配置web.xml文件,通知控制器
 
      下面是一个典型的多模块配置文件:
 
     
         config          /WEB-INF/struts-config.xml     

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

       
          config/order          /WEB-INF/struts-config-order.xml     
 
      在这里配置了两个应用模块和一个默认模块。如果struts-config-order.xml中配置了如下action:
       
      那就可以使用这样的URL访问:
 
      其中,webapp是web应用名,order是模块名,logon是该模块的一个action。要注意的是,当设置一个模块后,struts会默认该模块的目录,如上,模块名是order,那么struts会认为该模块处在order目录下。即,该web应用的目录结构是这样:
      webapp
         |-WEB-INF
         |-order
         |-customer
      如果你的web应用目录结构是类似下面这样:
      webapp
         |-WEB-INF
         |-jsp
             |-order
             |-customer
      那么,上面得logon这个action的定义要改一改:
                      forward="/../jsp/order/logon.jsp" />
      这是因为,你声明的模块是config/order,那么在struts看来,你的目录下必定有一个与WEB-INF目录同级的order目录,因此,你要用"/../jsp/order"来引用你自己得order目录下的文件。

抱歉!评论已关闭.