web.xml filter-mapping不转发到struts

时间:2009-11-24 08:23:08

标签: java tomcat struts2 web.xml

我正在努力做一些微不足道的事情,看不到我所缺少的东西。我有以下web.xml ...

<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>*.do</url-pattern>
</filter-mapping>
<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>*.action</url-pattern>
</filter-mapping>

当我使用像“http://localhost:8080/gallery.action”这样的网址时,一切正常(因为“图库”在struts.xml中正确配置等等)。

但是,如果我点击“http://localhost:8080/gallery.do” - 我会收到404响应。 Tomcat似乎没有将请求转发给struts,因为struts端没有登录。 Tomcat日志只显示404。

我尝试将过滤器映射更改为* .blah,除了* .action之外没有任何作用。我没有在默认的web.xml文件中看到任何冲突的信息。

任何人都知道我缺少什么?

2 个答案:

答案 0 :(得分:2)

显然Struts2默认只识别.action扩展名,并且需要使用struts.properties文件根据需要配置其他扩展名:

struts.action.extension =动作,做等

这是非常误导的,因为大多数文档都讨论了如何使用过滤器映射专门转发到struts。

答案 1 :(得分:-1)

这是因为* .action确实有<servlet-mapping>,但* .do

没有<servlet-mapping>