首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Struts 2全局. HTTP错误码的异常映射

Struts 2全局. HTTP错误码的异常映射
EN

Stack Overflow用户
提问于 2013-08-24 10:43:44
回答 3查看 6.6K关注 0票数 1

是否可以处理在web.xml中定义为Struts 2操作中的global-exception-mappings的错误页。例如,而不是

代码语言:javascript
复制
<error-page>
    <error-code>404</error-code>
    <location>/common/jsp/FilkeNotFine.jsp</location>
</error-page>

定义如下所示:

代码语言:javascript
复制
<global-exception-mppings>
    <exception-mapping ErrorCode="404" result="internernal-error" /> 
</global-exception-mppings>

有任何插件或拦截器可以做到这一点吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-24 10:52:57

你当然可以

代码语言:javascript
复制
<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中定义的。

票数 2
EN

Stack Overflow用户

发布于 2013-08-24 18:35:32

我搜索了,据我自己所知,IMHO没有办法做到这一点。Struts2不是抛404的那个,而是网络服务器。Struts2将抛出异常。

罗曼的回答很清楚地解释了如何处理异常,但你期待的是什么,不可能100%得到满足。

相反,您可以尝试这样的方法:

代码语言:javascript
复制
<error-page>
    <error-code>404</error-code>
    <location>/common/jsp/my404.action</location>
</error-page>

然后,您可以将my404映射到struts中的一些操作。

虽然我不确定它是否能工作,但我想它是依赖于服务器的。在这种情况下不能使用IMHO动态资源,因为服务器需要该文件在物理上存在。

如果发生这种情况,您可以在web根目录中创建一个名为my404的文件,如果您理解我的意思,那么struts2将处理其余的操作。

没有测试,但应该有效。

票数 0
EN

Stack Overflow用户

发布于 2014-12-03 04:07:07

您必须首先将devMode从您的struts.xml更改为false,这样您现在就可以使用您的404页了。

代码语言:javascript
复制
<constant name="struts.devMode" value="false" /> 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18417682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档