我将Struts 2配置为将任何java.lang.Exception重定向到记录异常的特殊Action。我的重定向工作,但我的行动总是得到一个空的异常(即使当我明确地抛出一个异常)。这里是我的struts.xml文件:将Struts 2异常处理程序映射到Action
<global-results>
<result name="errHandler" type="chain">
<param name="actionName">errorProcessor</param>
</result>
</global-results>
<global-exception-mappings>
<exception-mapping exception="java.lang.Exception" result="errHandler" />
</global-exception-mappings>
<action name="errorProcessor" class="myErrorProcessor">
<result name="error">/error.jsp</result>
</action>
<action name="throwExceptions" class="throwExceptions">
<result name="success">done.jsp</result>
</action>
在我的错误处理,我有以下几点:
public class myErrorProcessor extends ActionSupport {
private Exception exception;
public String execute() {
System.out.println("null check: " + (exception == null));
return "error";
}
public void setException(Exception exception) {
this.exception = exception;
}
public Exception getException() {
return exception;
}
}
在throwsException类,我有以下几点:
public String execute() {
int x = 7/0;
return "success";
}
当我运行我的程序,异常处理程序总是得到一个空异常。我正在使用链类型重定向到异常处理程序。我是否需要实现某种ExceptionAware接口? Struts 2异常setter是否调用setException之外的东西?
注意:我在编写这个程序时试图关注this tutorial。
我提供了一个重复链接教程的行为,但是它包含全部所需的所有文件以减少错误的可能性。 – Quaternion 2012-04-29 18:07:25