首先来温习一下整个Struts2的架构图
在这个架构图中,可以看到interceptor就是拦截器,在Action的执行前后分别都是需要执行拦截器。
拦截器的功能有很多,例如:数据转移、数据校验、类型转换等等。工作流程是一递归的过程。如下:
定义拦截器:
方法一:
实现interceptor接口
void init()初始化拦截器所需资源
void destroy()释放资源
String interceptor(ActionInvocation ai)throws Exception :实现拦截器的功能,获取拦截器的信息和action的状态,返回一个字符串作为逻辑视图。
方法二:
继承abstractinterceptor类
提供init()和destroy()的方法空实现,只需实现interceptor方法就好了。