是否可以处理在web.xml中定义为Struts 2操作中的global-exception-mappings的错误页。例如,而不是
<error-page>
<error-code>404</error-code>
<location>/common/jsp/FilkeNotFine.jsp</location>
</error-page>定义如下所示:
<global-exception-mppings>
<exception-mapping ErrorCode="404" result="internernal-error" />
</global-exception-mppings>有任何插件或拦截器可以做到这一点吗?
发布于 2013-08-24 10:52:57
你当然可以
<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>拦截器是在包exception和部分struts-default中定义的。
发布于 2013-08-24 18:35:32
我搜索了,据我自己所知,IMHO没有办法做到这一点。Struts2不是抛404的那个,而是网络服务器。Struts2将抛出异常。
罗曼的回答很清楚地解释了如何处理异常,但你期待的是什么,不可能100%得到满足。
相反,您可以尝试这样的方法:
<error-page>
<error-code>404</error-code>
<location>/common/jsp/my404.action</location>
</error-page>然后,您可以将my404映射到struts中的一些操作。
虽然我不确定它是否能工作,但我想它是依赖于服务器的。在这种情况下不能使用IMHO动态资源,因为服务器需要该文件在物理上存在。
如果发生这种情况,您可以在web根目录中创建一个名为my404的文件,如果您理解我的意思,那么struts2将处理其余的操作。
没有测试,但应该有效。
发布于 2014-12-03 04:07:07
您必须首先将devMode从您的struts.xml更改为false,这样您现在就可以使用您的404页了。
<constant name="struts.devMode" value="false" /> https://stackoverflow.com/questions/18417682
复制相似问题