struts2拦截器--注解
2009-12-04 14:53
288 查看
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之前执行
方法执行后
在
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
注解的同名参数
下面是一个简单示例:
package com.struts2.interceptor; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.interceptor.annotations.After; import com.opensymphony.xwork2.interceptor.annotations.Before; import com.opensymphony.xwork2.interceptor.annotations.BeforeResult; public class AnnoAction extends ActionSupport { /** * 注解 */ private static final long serialVersionUID = 1L; @Override public String execute() throws Exception { System.out.println("注解方法执行"); return SUCCESS ; } @Before public void annoBefore(){ System.out.println("方法执行前"); } @After public void annoAfter(){ System.out.println("方法执行后"); } @BeforeResult public void annoBeforeResult(){ System.out.println("返回result之前执行"); } }
struts.xml里面配置:
<!-- 注解示例 --> <action name="anno" class="com.struts2.interceptor.AnnoAction"> <result name="success">/index.jsp</result> <interceptor-ref name="annoInterceptor"></interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref> </action>
这里面引用了annoInteceptor,需要在Interceptors里面配置:
<interceptors> <interceptor name="loginInterception" class="com.struts2.interceptor.LoginInterceptor"> </interceptor> <interceptor name="preInter" class="com.struts2.interceptor.MyInterceptor"></interceptor> <interceptor name="annoInterceptor" class="com.opensymphony.xwork2.interceptor.annotations.AnnotationWorkflowInterceptor"></interceptor> </interceptors>
执行结果:
方法执行前
注解方法执行
返回result之前执行
方法执行后
相关文章推荐
- struts2:使用拦截器注解
- struts2 注解 拦截器
- 个人总结的Struts2拦截器使用和拦截栈的配置,基于注解的方式
- struts2:使用拦截器注解
- struts2_拦截器与注解开发
- struts2基于注解且使用拦截器的文件上传配置
- struts2 注解配置拦截器 实例
- 自定义注解+Struts2拦截器实现简单权限控制
- struts2基于注解的拦截器配置
- struts2拦截器注解<struts> <package name="default" extends="struts-default"> <interceptors> <interc
- struts2注解使用拦截器interceptor和interceptor-stack
- struts2 使用注解、反射、拦截器实现基于方法的权限控制
- Struts2注解拦截器(Before、After、BeforeResult)
- Struts2使用20 -- 注解配置2 -- 生命周期回调注解(拦截器注解)
- struts2注解下的拦截器配置
- struts2拦截器使用注解
- 利用注解加拦截器实现struts2的权限设置
- Struts2使用20 -- 注解配置2 -- 生命周期回调注解(拦截器注解)
- struts2 注解配置拦截器 实例
- struts2自定义拦截器注解配置方法