struts1 module

在一个比较大的系统开发过程中,对于struts-config文件,我们希望能按模块分成多个配置,这样不同开发人员可以只关注自己的struts configuration文件,在调试时可以不加载其他模块的配置文件,更容易维护。

方法:

(1)按模块配置多个config文件,每个都是合法的struts configuration文件。如:struts-main.xml,struts-module1.xml,struts-module2.xml。可以把一些基本的配置信息放在一个文件中,如可以将message-resources, plug-in等都放在struts-main.xml中。其他文件中配置和module相应的action-mapping, form-beans等。在web.xml中配置ActionServlet时

<init-param>

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

<param-value>/WEB-INF/struts-main.xml,/WEB-INF/struts-module1.xml,/WEB-INF/struts-module2.xml</param-value>

</init-param>

改方法每个config文件中配置的path等url,如:<forward name="index" path="/index.jsp" />都是相对于application-context的。即该方法和单个struts-config.xml的配置方法完全一样,只是将一个文件分成多个文件而已。

(2)按module配置,每个module配置一个config文件,每个文件都是合法的独立的config文件。文件中的path等url都是相对于当前module的。ActionServlet配置如下:

    <init-param>
        <param-name>config</param-name>
        <param-value>/WEB-INF/struts-default.xml</param-value>
     </init-param>
     
     <init-param>
        <param-name>config/module1</param-name>
        <param-value>/WEB-INF/module1.xml</param-value>
     </init-param>

   <init-param>
        <param-name>config/module2</param-name>
        <param-value>/WEB-INF/module2.xml</param-value>
     </init-param>

每个module相当于一个子applition,所以config文件中的信息都是 相对于一个module而言的。

module间跳转,如module1到module2:

i. <forward name="toModule2"
   contextRelative="true"
   path="/module2/index.do"
   redirect="true" />

contextRelative="true"  指名path是相对于application context的(不是module)。path中要加module2。

ii. 用SwithAction,配置SwithAction

访问url用 /changeModule.do?prefix=Module2&page=/index.do

prefix指名到哪个module, page指名module2中的url

用(2),我们的jsp页面要按照module存放,如APP/module1,APP/module2

你可能感兴趣的:(Web,xml,jsp,struts)