【发布时间】:2010-12-19 19:20:26
【问题描述】:
我正在尝试做一些微不足道的事情,但看不到我缺少什么。我有以下 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”这样的 URL 时,一切正常(因为在 struts.xml 等中正确配置了“gallery”)。
但是,如果我改为点击“http://localhost:8080/gallery.do” - 我会收到 404 响应。 Tomcat 似乎没有将请求转发到 struts,因为 struts 端没有日志记录。 Tomcat 日志只显示 404。
我尝试将过滤器映射更改为 *.blah,但除了 *.action 之外没有任何效果。我在默认的 web.xml 文件中看不到任何冲突的信息。
有人知道我错过了什么吗?
【问题讨论】:
-
struts.xml是否配置为知道如何处理gallery.do?也许过滤器转发工作正常,但 Struts 配置错误。 -
struts.xml 被配置为处理动作名称“gallery”......但对扩展名.action(或.do)一无所知。据我了解,struts 只是简单地敲掉扩展以获得动作名称。
-
另外,如果我输入一个无效的动作名称,struts 会执行大量日志记录...如果我输入 gallery.do 我在 struts 日志中绝对没有任何活动,所以我认为假设它是安全的没有得到它。
-
将所有其他过滤器映射替换为以下...
gallery.action 仍然有效...但 gallery.do 或 gallery.blah 仍然无效。struts2 /*
标签: java tomcat struts2 web.xml