首页 > 代码库 > struts2配置文件struts.xml的目录问题

struts2配置文件struts.xml的目录问题

struts2的配置文件struts.xml默认是直接在src目录下。这样我们在部署描述符web.xml中,指定struts2的过滤器时,直接如

清单一:

<filter>
  <filter-name>struts2</filter-name>
  <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
 </filter>
 <filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>

 

这样struts会指定加载配置文件。但如果我们的action的配置文件struts.xml不是放在默认的src目录下;有时我们会为了统一管理所有的xml文件,会在src目录下建一个子目录(假设config子目录),然后把所有的xml文件放在下面,当然struts.xml也会放在config子目录下。这时关于struts2的过滤器的配置就不能按照清单一那样了,否则就会找不到action的配置文件。正确的配置如

清单二:

<filter>
  <filter-name>struts2</filter-name>
  <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
  <init-param>
   <param-name>config</param-name>
   <param-value>struts-default.xml,struts-plugin.xml,/config/struts.xml</param-value> (1)
  </init-param>
 </filter>
 <filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>

 

你会发现,仅仅是把struts.xml放到了src的子目录config中,就要多指定其他两个配置文件struts-default.xml和struts-plugin.xml,如(1)  所示。而且struts-default.xml和struts-plugin.xml这两个文件还不能少,否则启动服务器的时候会报错。