Struts 2中的全局异常处理程序

时间:2011-04-20 21:03:27

标签: java exception-handling struts2 struts

我有一个混合Struts 1和Struts 2应用程序。我的Struts 1应用程序具有以下异常处理程序:

<global-exceptions>
    <exception type="java.lang.Exception" handler="myClass" />
</global-exceptions>

<global-forwards>
    <forward name="error" path="/error.jsp" module="/" />
</global-forwards>

我正在尝试在应用程序的Struts 2部分中完成类似的映射。这就是我现在所拥有的:

<global-results>
    <result name="myErrorHandler" type="redirectAction">
    <param name="actionName">myErrorAction</param>
    </result>
</global-results>

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

<action name="myErrorAction" class="myErrorAction">
      <result name="error">/error.jsp</result>
</action>

但是,每当我测试我的错误处理程序时,我都会得到一个无限循环(myErrorAction一直在调用自己)。有没有更好的方法在Struts 2中设置全局异常处理程序?我的操作有自定义代码,用于创建特殊的日志条目,并构建错误消息以在jsp页面上显示给用户。

1 个答案:

答案 0 :(得分:1)

您是否100%确定myErrorAction(或您的error.jsp)没有抛出异常?这将解释无限循环。

在这方面,应该非常谨慎地处理异常的资源是完全确定的。