我在Struts 2中使用全局异常映射,如下所示:
19.3%
流程是完美的,但我想知道如何获取抛出异常的Action(以及希望方法)。
在<global-exception-mappings>
<exception-mapping exception="java.lang.Exception" result="exception" />
</global-exception-mappings>
<!-- ******* ACTIONS ****** -->
<action name="timeout" class="errorAction">
<interceptor-ref name="carsBasic" />
<interceptor-ref name="defaultStack" />
<result name="input">/WEB-INF/jsp/index.jsp</result>
</action>
动作类中,执行方法,它正确地添加了timeOut
表示“错误”,但在这里我想添加记录/通过电子邮件发送给我的代码以显示违规的阶级和方法。
这是存储在某个地方,我该如何访问它?
答案 0 :(得分:1)
要记录异常,您需要使用log4j之类的记录器。可以配置允许发送电子邮件的一些appender。
当exception
拦截器发生异常并处理异常时,它会将值存储到值堆栈中。值存储在:
exception
:异常对象本身exceptionStack
:堆栈跟踪中的值
您可以配置将处理异常的操作,并记录从值堆栈中检索它们的这些值,并配置在处理异常时执行的全局结果。此结果可以是chain
类型,其中上一个操作的值位于下一个操作的值堆栈中。
<global-results>
<result name="exception" type="chain">ExceptionAction</result>
</global-results>