struts.xml的默认存放路径是在/WEB-INF/classes目录下,也就是说,把struts.xml放在源码src的目录下。
但是有时,我们为了方便,希望把它放到其他位置。
但是有时,我们为了方便,希望把它放到其他位置。
首先我们要明白struts2加载配置文件都是从它自己的jar包和\WEB-INF\classes两个默认的位置加载的。
如果要修改struts2.x配置文件的存放位置,需要几个步骤:
如果要修改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的相对路径。
如果不在这里配置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的。
假如你的子配置文件的路径是
/WEB-INF/classes/aa/bb/cc/struts-config.xml的话,file属性的值应该写:aa/bb/cc/struts-config.xml。