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这两个文件还不能少,否则启动服务器的时候会报错。