修改Struts2的struts.xml配置文件位置

默认情况下,Struts2的配置文件名称为struts.xml,且该文件放在src根目录下。如下图所示:

如果需要修改struts.xml的位置,例如把struts.xml放到struts2文件夹下,结构如下图所示,该怎么办呢?

修改Struts2的struts.xml配置文件位置_第1张图片

Struts2在web.xml中的一般配置如下:

[html]   view plain  copy
  1.   
  2. <filter>  
  3.     <filter-name>struts2filter-name>  
  4.     <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilterfilter-class>  
  5. filter>  
  6. <filter-mapping>  
  7.     <filter-name>struts2filter-name>  
  8.     <url-pattern>/*url-pattern>  
  9. filter-mapping> 

struts2.X配置文件默认存放路径在/WEB-INF/classes目录下,即将struts.xml放在src的目录下。

但是为了方便管理,开发人员把struts.xml放到其他位置,处理方法如下。

首先要明白struts2加载配置文件都是从自己的jar包和/WEB-INF/classes两个默认的位置加载的。

若修改struts2.x配置文件的存放位置,在web.xml配置过虑器时,具体配置如下:
 

1 <filter>
2     <filter-name>struts2filter-name>
3     <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilterfilter-class>
4     <init-param
5         <param-name>configparam-name
6         <param-value>struts-default.xml,struts-plugin.xml,struts/struts.xmlparam-value>
7     init-param>
8 filter>

 

注意点1

若设置了config参数,那struts-default.xml等原来struts2默认加载的文件也要手动指定,否则不会自动加载。

 

注意点2

struts-plugin.xml也需要指定。因为在struts2使用2.1.6版本时:

若需要和spring集成的话,struts2-spring-plugin-2.1.6.jar中有struts-plugin.xml这个文件。

若struts2要支持json的话, json-plugin-0.34.jar中也有一个叫struts-plugin.xm的文件。

因此这个文件也是要加载的。

 

注意点3

采用相对/WEB-INF/classes的相对路径。本例放在了/WEB-INF/classes/struts目录下。当然也可以写成classpath:struts/struts.xml

 

注意点4

若不在这里配置struts-default.xml,struts-plugin.xml,也可以在struts.xml文件中添加include标签将两个文件包括进去。

 

注意点5

使用标签添加其他子配置文件时,file属性也要是一个相对/WEB-INF/classes的路径。

若子配置文件路径是/WEB-INF/classes/configs/struts/student/struts-config.xml的话,

file属性值应该写configs/struts/student/struts-config.xml。

若有多个子配置文件可以采用扫描的方式


你可能感兴趣的:(Struts2)