struts2配置全局异常拦截

[b]把这段配置放到package中就行了....[/b]

<global-results>
<result name="commonErrorPage">/error.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping name="commonErrorPage"
exception="java.lang.Exception"
result="commonErrorPage"/>
</global-exception-mappings>


其实也可以配置一个拦截器,拦截invocation.invoke()是否有异常,有异常则设置错误信息返回到指定页面。请看下面代码:
1.struts.xml的配置:

<interceptors>
<interceptor name="exceptionInterceptor" class="ExceptionInterceptor" />
<interceptor-stack name="myStack">
<interceptor-ref name="defaultStack" />
<interceptor-ref name="exceptionInterceptor" />
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="myStack" />

2.其中ExceptionInterceptor在Spring中有配置:

<bean id="ExceptionInterceptor"
class="com.business.interceptor.ExceptionInterceptor"></bean>

3.自己在实现EsbLogInterceptor这个类中拦截代码:

/**
* 异常拦截器,将异常信息捕获,然后统一在异常信息页面进行显示处理
* @author.....
*
*/
public class ExceptionInterceptor extends AbstractInterceptor
{

private static final long serialVersionUID = -973363922210992103L;

public static final String EXCEPTION = "commonErrorPage";

@Override
public String intercept(ActionInvocation invocation) throws Exception
{
try
{
return invocation.invoke();
}
catch (Exception e)
{
ActionContext context = invocation.getInvocationContext();
StringWriter writer = new StringWriter();
e.printStackTrace(new PrintWriter(writer, true));
context.put("tipMessage", e.getMessage());
context.put("tipCourse", writer.toString());
return EXCEPTION;
}

}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值