Struts2自定义拦截器
2012-04-14 00:27
281 查看
Struts中最核心的应该就是拦截器了,通过拦截器struts可以帮我们实现数据转换、数据校验、国际化等多种功能,拦截器实现的原理是动态代理,关于动态代理可以参考这篇文章:Java动态代理 下面将实现自定义拦截器:
创建一个类,实现Tnterceptor接口
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.Interceptor;
//也可以继承AbstractInterceptor类,这样就可以不用重写destroy()和init()
public class MyInterceptor implements Interceptor {
//可以定义一些属性,并提供相应的setter方法,用于接收参数
@Override
public void destroy() {
System.out.println("销毁时调用");
}
@Override
public void init() {
System.out.println("初始化时调用");
}
@Override
public String intercept(ActionInvocation arg0) throws Exception {
System.out.println("拦截前执行");
String result = arg0.invoke();
System.out.println("拦截后执行");
return result;
}
}配置struts.xml文件:
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
<constant name="struts.objectFactory" value="spring" />
<include file="struts-default.xml" />
<package name="default" namespace="/" extends="struts-default">
<interceptors>
<interceptor name="myInterceptor" class="com.jyu.interceptor.MyInterceptor">
<!-- <param name="参数名">参数值</param> 用于向拦截器传递参数 -->
</interceptor>
</interceptors>
<action name="userAction" class="com.jyu.action.UserAction"
method="execute">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
<interceptor-ref name="myInterceptor"></interceptor-ref>
<!-- 使用struts默认的拦截器 -->
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>
</package>
</struts>
创建一个类,实现Tnterceptor接口
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.Interceptor;
//也可以继承AbstractInterceptor类,这样就可以不用重写destroy()和init()
public class MyInterceptor implements Interceptor {
//可以定义一些属性,并提供相应的setter方法,用于接收参数
@Override
public void destroy() {
System.out.println("销毁时调用");
}
@Override
public void init() {
System.out.println("初始化时调用");
}
@Override
public String intercept(ActionInvocation arg0) throws Exception {
System.out.println("拦截前执行");
String result = arg0.invoke();
System.out.println("拦截后执行");
return result;
}
}配置struts.xml文件:
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
<constant name="struts.objectFactory" value="spring" />
<include file="struts-default.xml" />
<package name="default" namespace="/" extends="struts-default">
<interceptors>
<interceptor name="myInterceptor" class="com.jyu.interceptor.MyInterceptor">
<!-- <param name="参数名">参数值</param> 用于向拦截器传递参数 -->
</interceptor>
</interceptors>
<action name="userAction" class="com.jyu.action.UserAction"
method="execute">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
<interceptor-ref name="myInterceptor"></interceptor-ref>
<!-- 使用struts默认的拦截器 -->
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>
</package>
</struts>
相关文章推荐
- struts2_自定义拦截器以及注意事项
- struts2编写自定义拦截器filter
- 【Struts2学习笔记(10)】自定义拦截器管理权限访问
- Struts2自定义拦截器进行访问限制
- springMVC高级部分(数据校验,数据错误回显(自定义格式错误显示),拦截器,异常处理,文件上传,文件下载,springmvc运行流程以及springmvc和struts2对比)
- struts2自定义拦截器
- Struts2中自定义拦截器
- Struts2自定义拦截器—Session超时的处理
- struts2自定义拦截器
- dwz ajax session超时跳转登录页(struts2自定义拦截器)
- Struts2自定义拦截器
- Struts2自定义拦截器实例—登陆权限验证
- Struts2_自定义拦截器
- Struts2学习之2(请求参数的封装,类型转换,输入验证,自定义拦截器)
- struts2(九)内置拦截器和自定义拦截器详解(附源码)
- struts2中自定义拦截器intercept的相关配置及使用方法
- struts2自定义拦截器并配置拦截器使其生效
- struts2自定义拦截器
- Struts2 自定义拦截器(方法拦截器)
- struts2自定义拦截器