(转)Struts2的异常处理机制------自定义拦截器实现

通过自定义拦截器实现action每个方法中如果有异常发生捕捉并跳转到对应页面。

首先是action类:

public String execute(){

//这里由于是用于测试用,所以方法体中抛出异常,就不能加return语句。

  当某个action访问该方法时抛出异常,此时被拦截器拦截,跳转到对应页面。

throw new NullPointerException();

}

再是Struts.xml配置:

<interceptors>

<interceptor name="MyException" class="com.xxx.xxx.MyException"></interceptor>

<!--这里可以配置多个interceptor-->

</interceptors>

<!--拦截器栈-->

<interceptor-stack name="MyInterceptorStack">

<interceptor-ref name="MyException"></interceptor-ref>

<!--这里也可以配置多个interceptor-ref-->

</interceptor-stack>

<!-- 全局默认拦截器 ,一个系统中只能一个全局默认-->
<default-interceptor-ref name="MyInterceptorStack"></default-interceptor-ref>

<!--全局跳转-->

<global-results>

<result name="error'>/error.jsp</result>

<!--也可以有多个-->

</global-results>

最后自定义拦截器:

需要继承AbstractInterceptor

public class MyException extends AbstractInterceptor{

String result="";   //这里的值要和全局跳转那里的result的name一致。

public String interceptor(ActionInvocation ac){

 

try{

result=ac.invoke();

}catch(Exception e){

这里可以有多个catch,但要注意顺序问题,用于捕捉不同的异常,进行不同的处理

}

}

}

posted @ 2013-11-27 18:44  天子波波  阅读(1678)  评论(0)    收藏  举报