覆盖 struts 2 拦截器

Override an struts 2 interceptor

我们正在使用 store 拦截器。在极少数情况下,此拦截器会抛出 Session Already Invalidate 异常,同时尝试将错误消息放入会话中(MessageStoreInterceptor 行:282)。

我试图覆盖这个拦截器并悄悄浅化异常,让动作被执行。

看起来很简单但是我找不到我应该return当异常发生时(我如何获得下一个拦截器?!):

public class MyMessageStoreInterceptor extends MessageStoreInterceptor {

    @Override
    public String intercept(ActionInvocation invocation) throws Exception {

        try{
            return super.intercept(invocation);
        }catch(IllegalStateException ex){
            return ??; 
        }

    }    
}

如果你想到达下一个拦截器,你应该 return invocation.invoke()。它 return 是一个动作结果。如果由于异常而没有得到结果,并且想要继续操作调用,则应该 return 自己的结果或预定义结果之一,例如 SUCCESSERROR.

@Override
public String intercept(ActionInvocation invocation) throws Exception {

    try{
        return super.intercept(invocation);
    }catch(IllegalStateException ex){
        return Action.ERROR; 
    }

}