如何在Struts2中实现自定义404页面

如何在Struts2中实现自定义404页面,struts2,http-status-code-404,action-mapping,Struts2,Http Status Code 404,Action Mapping,我正在学习struts2应用程序开发,非常感谢对实现自定义404页面的帮助。 在我的申请中 web.xml具有以下功能: <error-page> <error-code>404</error-code> <location>/jsp/pub/error404.jsp</location> </error-page> <package name="actions-default" extend

我正在学习struts2应用程序开发,非常感谢对实现自定义404页面的帮助。 在我的申请中

web.xml具有以下功能:

<error-page>
    <error-code>404</error-code>
    <location>/jsp/pub/error404.jsp</location>
</error-page>
    <package name="actions-default" extends="struts-default">

    <global-results>
        <result name="exception">/jsp/pub/exception.jsp</result>
    </global-results>

    <global-exception-mappings>
        <exception-mapping exception="java.lang.Exception"
            result="exception" />
        <exception-mapping exception="java.lang.RuntimeException"
            result="exception" />
    </global-exception-mappings>

</package>
在应用程序控制台,我看到以下内容:

严重:异常处理ErrorPage[errorCode=404,location=/jsp/pub/error404.jsp] org.apache.jasper.jaspereException:处理第6行的JSP页面/JSP/pub/error404.JSP时发生异常

6:
如果我删除所有的“s”标记,并将error404.jsp设置为普通jsp页面,那么我可以看到定制的404页面。我哪里做错了?任何解决这一问题的帮助都会大有裨益

提前谢谢


大多数S2 JSP标记都希望在S2请求的上下文中运行。直接引用JSP会绕过S2请求过程,因此没有valuestack,因此大多数标记都会中断

<constant name="struts.devMode" value="false" />
"HTTP Status 404 - There is no Action mapped for namespace [/] and action name [invalidurl] associated with context path"
6: <s:url value='/' var="contextPrefix" />