改变 struts2 中 struts.xml 默认路径

原文出处:http://blog.163.com/wunan_23/blog/static/1955623202011102105925798/

 

struts2.x配置文件的默认存放路径是在/WEB-INF/classes目录下,也就是说,把struts.xml放在src的目录下。
但是有时,我们为了方便,希望把它放到其他位置,这里简单介绍一下处理的方法。 

首先我们要明白struts2加载配置文件都是从它自己的jar包和\WEB-INF\classes两个默认的位置加载的。
如果要修改struts2.x配置文件的存放位置,需要几个步骤: 
 
1,web.xml配置过虑器的时候,在原有的filter中加入一个init-param标签,具体配置如下: 
<filter> 
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 
<init-param>  
<param-name>config</param-name>  
<param-value>struts-default.xml,struts-plugin.xml,struts/struts.xml </param-value> 
</init-param> 
</filter>  
这里需要注意的是,如果你设置了<param-name>config</param-name>参数,那么struts-default.xml等原来
struts2默认加载的文件你也要指定,否则它好像不会自动加载,会出错。而struts-plugin.xml,也要放在这里,
是因为什么呢。在struts2使用2.1.6版本时,仔细查看了一下struts2-spring-plugin-2.1.6.jar(如果需要和spring集
成的话)中有struts-plugin.xm这个文件,另外json-plugin-0.34.jar(如果struts2要支持json的话,需要这个jar)
中也有一个叫struts-plugin.xm的文件。因此这个文件也是要加载的。最后,是struts.xml文件,这里必须采用相
对\WEB-INF\classes的相对路径。我这里是放在了\WEB-INF\classes\struts目录下。  
如果不在这里配置struts-default.xml,struts-plugin.xml,也可以在struts.xml文件中添加
<include file="struts-plugin.xml"></include>和<include file="struts-plugin.xml"></include>来代替。  
 
2,在struts.xml文件中,使用<include file="..."/>标签添加其他的子配置文件时,也要是一个相对
\WEB-INF\classes的相对路径,和struts.xml是一样的。假如你的子配置文件的路径是
/WEB-INF/classes/aa/bb/cc/struts-config.xml的话,file属性的值应该写:aa/bb/cc/struts-config.xml。  
 
最后,如果可以的话,可以使用struts.xml文件在默认路径,<include file="..."/>使用相对路径添加放在其他位
置的子配置文件。

你可能感兴趣的:(struts.xml)