【发布时间】:2014-07-29 03:53:33
【问题描述】:
我正在将 Struts 2 框架用于 web 应用程序。在尝试创建自定义 404 错误页面时,我发现 Struts 2 为我做的工作比预期的要多。
我只使用struts.xml 和web.xml 文件。在web.xml 文件中,我添加了以下代码:
<error-page>
<error-code>404</error-code>
<location>/error/Error404.jsp</location>
</error-page>
现在,当我启动我的 web 应用程序时,它会像往常一样进入主页。当我尝试这种类型的网址时(所有不存在的网址):
http://localhost:8080/MyWebApp/fhgfhfhfhgfhgfhfhfh
http://localhost:8080/MyWebApp/fhgfhfhfhgfhgfhfhfh.action
Struts 将处理请求,运行拦截器,并自动重定向到默认页面。我本来希望我的 404 错误页面会显示在这些页面上。我什至在struts.xml 中删除了这一行,但它仍然会重定向!
<default-action-ref name="index" />
当我使用以下网址时:
http://localhost:8080/MyWebApp/fhgfhfhfhgfhgfhfhfh.jsp
Struts 只是显示一个空白屏幕,并且没有处理任何请求(没有拦截器,没有重定向......)。我也觉得这很奇怪,因为我看不到该请求的无效之处(除了不存在的 JSP 文件)
所以我想我需要修改我的struts.xml,以便我可以覆盖一些默认的重定向行为(我不希望通过访问主页来掩盖 404 错误),并且我的web.xml 也可以处理任何任意模糊的请求(因此用户输入的任何 URL 都将被实际处理,而不仅仅是显示空白屏幕。我的配置中缺少什么?
PS:我不是在谈论 Java 异常/错误,而只是在谈论 HTTP 错误。 Java 异常得到了正确的处理,就像我希望它们的行为一样。
【问题讨论】:
标签: jsp struts2 http-status-code-404 web.xml