使用多个struts-config配置文件,模块化
2009-07-08 22:44
561 查看
来源:http://www.diybl.com/course/3_program/java/javajs/2008531/118259.html
可以将一个struts-config.xml分割成多个小的struts-config.xml。每个都必须按照struts-config DTD文件的格式进行编写。配置举例如下:
<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,
/WEB-INF/struts-config-2.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
当载入ActionServlet类时,struts将多个配置文件拼成单个的配置文件。
如果多个配置文件中有重复的元素则使用最后一个配置文件中的。
你也可以为多个字模块指定多个配置文件。如下所示:
<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>
模块化
需求
需要将一个模块分割成多个子模块,每个模块有自己的配置文件。
解决方案
在web.xml中配置如下:
<!-- Action Servlet Configuration -->
<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/module1</param-name>
<param-value>/WEB-INF/struts-config-module1.xml</param-value>
</init-param>
<init-param>
<param-name>config/module2</param-name>
<param-value>/WEB-INF/struts-config-module2.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
讨论
struts引入模块的概念将一个应用程序分割成多个具有不同功能的子模块。每个模块可以定义自己的配置文件。简单的struts程序隐含一个默
认的模块,它没有子模块名。添加的子模块用一个前缀config/来定义。如上例中定义了三个模块。第一个init-param定义了一个默认模块。第
二、三个init-param分别定义了module1,module2两个模块。
struts通过在web.xml中对模块的声明处理每一个请求的模块信息。它将作用于global forwards, global
exceptions, action mappings, local forwards, and local
exceptions的path属性。各个模块的配置文件struts-config.xml不需要知道自己属于哪个模块
如果你使用struts 标签如html:link和html:rewrite生成URL,则URL中将包含模块的名称。如:
<html:link page="/validateswitch.do?prefix=/validate&page=/input.jsp">to validate/input.jsp</html:link>
一般情况下,应用程序会将所有的图片文件放在一个顶层目录中(如:<top-level>/images),
如果你使用模块时,当你用到标签html:img时需要为每个模块建立一个images文件夹,或设置在html:img标签的module属性为空字符串(“”)指明images文件假在应用程序根目录下。
模块间的切换
问题
想从一个模块(源模块)切换到另一个模块(目标模块)。
解决方案
在你的源模块中建立一个
type为“org.apache.struts.actions.SwitchAction”的action:
<action path="/ChangeModuleTest"
type="org.apache.struts.actions.SwitchAction"/>
使用这个action,向它传递两个参数prefix和page。prefix指明了目标模块名称,必须是以斜扛开头(“/”),page指明了相对于目标模块的位置。如:
<html:link page="/ChangeModuleTest.do?prefix=moduleName&page=/SomeAction.do">
Change Module
</html:link>如果你要连接到一个action,别忘了加上
”.do”
。
讨论
SwitchAction能将应用程序从一个模块转到另一个模块,然后跳转到目标模块的指定位置。
同ForwardAction、IncludeAction一样SwitchAction不需要子类化。
当我们在浏览器中使用http://hostaddress/contextpath/module/action.do式样的的url时,actionservlet会根据module选择模块对象,下面是actionservlet处理http请求的代码:
可以将一个struts-config.xml分割成多个小的struts-config.xml。每个都必须按照struts-config DTD文件的格式进行编写。配置举例如下:
<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,
/WEB-INF/struts-config-2.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
当载入ActionServlet类时,struts将多个配置文件拼成单个的配置文件。
如果多个配置文件中有重复的元素则使用最后一个配置文件中的。
你也可以为多个字模块指定多个配置文件。如下所示:
<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>
模块化
需求
需要将一个模块分割成多个子模块,每个模块有自己的配置文件。
解决方案
在web.xml中配置如下:
<!-- Action Servlet Configuration -->
<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/module1</param-name>
<param-value>/WEB-INF/struts-config-module1.xml</param-value>
</init-param>
<init-param>
<param-name>config/module2</param-name>
<param-value>/WEB-INF/struts-config-module2.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
讨论
struts引入模块的概念将一个应用程序分割成多个具有不同功能的子模块。每个模块可以定义自己的配置文件。简单的struts程序隐含一个默
认的模块,它没有子模块名。添加的子模块用一个前缀config/来定义。如上例中定义了三个模块。第一个init-param定义了一个默认模块。第
二、三个init-param分别定义了module1,module2两个模块。
struts通过在web.xml中对模块的声明处理每一个请求的模块信息。它将作用于global forwards, global
exceptions, action mappings, local forwards, and local
exceptions的path属性。各个模块的配置文件struts-config.xml不需要知道自己属于哪个模块
如果你使用struts 标签如html:link和html:rewrite生成URL,则URL中将包含模块的名称。如:
<html:link page="/validateswitch.do?prefix=/validate&page=/input.jsp">to validate/input.jsp</html:link>
一般情况下,应用程序会将所有的图片文件放在一个顶层目录中(如:<top-level>/images),
如果你使用模块时,当你用到标签html:img时需要为每个模块建立一个images文件夹,或设置在html:img标签的module属性为空字符串(“”)指明images文件假在应用程序根目录下。
模块间的切换
问题
想从一个模块(源模块)切换到另一个模块(目标模块)。
解决方案
在你的源模块中建立一个
type为“org.apache.struts.actions.SwitchAction”的action:
<action path="/ChangeModuleTest"
type="org.apache.struts.actions.SwitchAction"/>
使用这个action,向它传递两个参数prefix和page。prefix指明了目标模块名称,必须是以斜扛开头(“/”),page指明了相对于目标模块的位置。如:
<html:link page="/ChangeModuleTest.do?prefix=moduleName&page=/SomeAction.do">
Change Module
</html:link>如果你要连接到一个action,别忘了加上
”.do”
。
讨论
SwitchAction能将应用程序从一个模块转到另一个模块,然后跳转到目标模块的指定位置。
同ForwardAction、IncludeAction一样SwitchAction不需要子类化。
当我们在浏览器中使用http://hostaddress/contextpath/module/action.do式样的的url时,actionservlet会根据module选择模块对象,下面是actionservlet处理http请求的代码:
相关文章推荐
- 使用多个struts-config配置文件,模块化
- 使用多个struts-config配置文件,模块化
- struts 使用多个配置文件 struts-config.xml
- MyEclipse中为struts项目添加和使用多个Struts-Config配置文件
- struts 使用多个配置文件 struts-config.xml
- struts 使用多个配置文件 struts-config.xml
- Struts-config.xml配置文件《action-mappings》元素的详解
- struts2.0 读取配置文件 在直接使用标签读取
- spring cloud config server 使用本地配置文件报错
- Spring xml 配置使用外部config 文件
- Python配置文件解析模块ConfigParser使用实例
- 使用外联文件对Web.config的appSettings进行配置
- 搭建SSH框架的时候的struts-config.xml配置文件(用plug-in管理)
- 比较完整的Struts-config.xml配置文件
- C#的配置文件App.config使用总结 - 转
- struts-config.xml配置文件详解
- C# 使用app.config文件方法 读取外部配置信息
- 在C#类库中使用App.config文件自定义配置
- Struts2国际化、拦截器配置以及使用struts上传文件
- 在struts配置文件中使用spring配置的bean