Struts2 在 com.opensymphony.xwork2.interceptor.annotations 包中定义了 3 个拦截器注解类型,让你可以不用编写拦截器类,直接通过注解的方式指定 action 执行之前和之后需要调用的方法。
Struts2 提供的 3 个拦截器注解类型都只能应用到方法级别。如下:
Before
标注一个 action 方法,该方法将在 action 的主要方法 ( 如 execute 方法 ) 调用之前调用。如果标注的方法有返回值,并且不为空,那么它的返回值将作为 Action 的结果代码。
After
标注一个 action 方法,该方法将在 action 的主要方法以及 result 执行之后调用,如果标注的方法有返回值,那么这个返回值将被忽略。
BeforeResult
标注一个 action 方法,该方法将在 action 的主要方法调用之后,在 result 执行之前调用,如果标注的方法有返回值,那么这个返回值将被忽略。
Before After 和 BeforeResult 注解的同名参数
下面是一个简单示例:
struts.xml里面配置:
这里面引用了annoInteceptor,需要在Interceptors里面配置:
执行结果:
方法执行前
注解方法执行
返回result之前执行
方法执行后