struts2 framework 最核心的配置文件默认的是 struts.xml文件,通常放在webapp中WEB-INF/classes目录之下,如果使用Eclipse或者MyEclispe开发通常放在web项目的src根目录下。
1、配置文件默认路径,web.xml中配置
较早版本之前使用下面配置
<filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
2.3版本以后采用下面的配置
<filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
2、配置文件自定义路径 web中的配置如下
本例中struts.xml的路径是 WEB-INF/classes/conf/struts/struts.xml
<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,conf/struts/struts.xml </param-value> </init-param> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
补充说明*:
(1)参数config的值由三个配置文件组成,三个配置文件的要将struts.xml文件放最后;
(2)struts加载配置文件的方式,struts并不是获取的配置文件相对应用(项目)的路径,而是相对src,对于web是相对/WEB-INF/classes文件夹的路径;
(3)在新版本中使用classpath*:conf/struts/struts/struts.xml这样的方式,依旧无法找到配置文件的路径,(参考其他博客似乎在之前旧版本可以采用这样的方式来写)
之前版本的写法如下
<filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> <init-param> <param-name>filterConfig</param-name> <param-value>classpath:conf/struts/struts.xml</param-value> </init-param> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
参数值和参数的名称都发生了变化。