Struts2 全局异常 - 原始异常源
Struts2 Global Exception - Original Exception Source
我在 Struts 2 中使用全局异常映射如下:
<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>
流程很完美,但我想知道如何获取抛出异常的 Action(希望是方法)。
在 timeOut
操作 class 中,执行方法正确地添加了一个 actionMessage
指示 'an error' 但在这里我想添加的代码是 logged/emailed 向我展示违规的 class 和方法。
它存储在某个地方吗?我如何访问它?
要记录异常,您需要使用一些记录器,例如 log4j。可以配置一些允许发送电子邮件的附加程序。
当异常发生并由 exception
拦截器处理时,它将值存储到值堆栈中。存储的值:
exception
: The exception object itself
exceptionStack
: The value from the stack trace
您可以配置将处理异常的操作并记录这些值以从值堆栈中检索它们,并配置全局结果以在处理异常时执行。此结果可以是 chain
类型,其中前一个操作的值在下一个操作的值堆栈中。
<global-results>
<result name="exception" type="chain">ExceptionAction</result>
</global-results>
我在 Struts 2 中使用全局异常映射如下:
<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>
流程很完美,但我想知道如何获取抛出异常的 Action(希望是方法)。
在 timeOut
操作 class 中,执行方法正确地添加了一个 actionMessage
指示 'an error' 但在这里我想添加的代码是 logged/emailed 向我展示违规的 class 和方法。
它存储在某个地方吗?我如何访问它?
要记录异常,您需要使用一些记录器,例如 log4j。可以配置一些允许发送电子邮件的附加程序。
当异常发生并由 exception
拦截器处理时,它将值存储到值堆栈中。存储的值:
exception
: The exception object itselfexceptionStack
: The value from the stack trace
您可以配置将处理异常的操作并记录这些值以从值堆栈中检索它们,并配置全局结果以在处理异常时执行。此结果可以是 chain
类型,其中前一个操作的值在下一个操作的值堆栈中。
<global-results>
<result name="exception" type="chain">ExceptionAction</result>
</global-results>