Interceptor是在action前后执行,那么在action之后的处理如何实现呢?Struts2提供了一个抽象类AroundInterceptor,即通过interceptor()方法对ActionInvocation.invoke()方法进行递归调用,ActionInvocation循环嵌套在intercept()中,一直到语句result=invocation.invoke();
执行结束即:Action执行完并返回结果result.这时Interceptor对象会按照港开始执行的逆向顺序依次执行结果。这样,before方法在Action之前执行,after方法在Action方法之后执行。