一尘不染

Struts 2返回404,它不是由Tomcat错误页面触发的

jsp

考虑Tomcat 7.0.54上的struts 2 webapp。

web.xml定义为:

<error-page>
    <location>/WEB-INF/content/global-error-page.jsp</location>
</error-page>

这会强制将 所有 Tomcat错误(包括404错误)重定向到global-error-page.jsp

因此,如果我尝试http://foo.com/bad.jsphttp://foo.com/bad.extTomcat将我重定向到global- error-page.jsp

但是尝试http://foo.com/bad.action仍然会返回404错误,tomcat无法处理它,这是修复它的一种方法吗?


阅读 371

收藏
2020-06-10

共1个答案

一尘不染

您可以使用 default-action-ref
来捕获所有不匹配的操作,如docs中所述

通常,如果请求了操作,并且框架无法将请求映射到操作名称,则结果将是通常的“
404-找不到页面”错误。但是,如果您希望综合动作处理任何不匹配的请求,则可以指定默认动作。如果没有其他动作匹配,则使用默认动作。

默认操作没有特殊要求。每个程序包可以有自己的默认操作,但是每个名称空间只能有一个默认操作。

只需将其结果映射到所需的页面即可:

<package...>

    <default-action-ref name="index" />

    <action name="index">
        <result>/WEB-INF/content/global-error-page.jsp</result>
    </action>

</package>
2020-06-10