Java Struts 2 HTTP错误代码的全局异常映射
是否可以将Java Struts 2 HTTP错误代码的全局异常映射,java,exception,struts2,error-handling,http-error,Java,Exception,Struts2,Error Handling,Http Error,是否可以将web.xml中定义的错误页面作为Struts 2操作中的全局异常映射处理。 例如,代替 <error-page> <error-code>404</error-code> <location>/common/jsp/FilkeNotFine.jsp</location> </error-page> 404 /common/jsp/FilkeNotFine.jsp 定义如下: <glob
web.xml
中定义的错误页面作为Struts 2操作中的全局异常映射处理。
例如,代替
<error-page>
<error-code>404</error-code>
<location>/common/jsp/FilkeNotFine.jsp</location>
</error-page>
404
/common/jsp/FilkeNotFine.jsp
定义如下:
<global-exception-mppings>
<exception-mapping ErrorCode="404" result="internernal-error" />
</global-exception-mppings>
有任何插件或拦截器可以做到这一点吗?当然可以
<global-results>
<result name="error">/common/jsp/FilkeNotFine.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping exception="java.lang.Exception" result="error"/>
</global-exception-mappings>
/common/jsp/FilkeNotFine.jsp
拦截器是在包struts default
中定义的exception
,也是defaultStack
的一部分,我搜索过了,据我所知,我没有办法这么做。Struts2不是抛出404的那个,它是web服务器。
Struts2将抛出异常
RomanC的回答很清楚地解释了如何处理异常,但您所期待的并不能100%实现
相反,您可以尝试以下方法:
<error-page>
<error-code>404</error-code>
<location>/common/jsp/my404.action</location>
</error-page>
404
/common/jsp/my404.action
然后可以将my404映射到StrutsXML中的某些操作
虽然我不确定它是否能工作,但我猜它依赖于服务器。
在这种情况下不能使用IMHO动态资源,因为服务器要求该文件实际存在
如果发生这种情况,您只需在web根目录中创建一个名为my404.action的文件,然后struts2将处理其余的部分,如果您理解我所说的内容的话
未测试,但应该可以工作。您必须首先将struts.xml中的devMode更改为false,以便现在可以使用404页面
<constant name="struts.devMode" value="false" />
你确定吗?我们在哪里定义http错误代码。例如,错误404>找不到文件。400>错误请求这是由应用程序中抛出的异常处理的常见错误,您可以将代码发送到响应。然后我应该根据错误代码重定向到jsp页面中的不同页面!您不能重定向,只需发送错误并转义,web容器将为您处理它。