在Struts2中定义自己的Interceptor

  在Struts2中有很多很多的Interceptor,要定义自己的拦截器,可以先看看它们是怎么实现的,它们有些是extends一些特定的Interceptor,但百变不离其宗的是拦截器都实现了Interceptor这个接口,下面我定义一个MyInterceptor:

public class MyInterceptor implements Interceptor{

	public void destroy() {
		
	}

	public void init() {
		
	}

	public String intercept(ActionInvocation arg0) throws Exception {
		
		System.out.println("invoke before");
		String str = arg0.invoke();
		System.out.println("invoke after");
		return str;
	}
}

这个MyInterceptor我只写了它最重要的Intercept方法,在调用invoke方法的前后我各打印了一句话,当然你也可以执行自己的操作了,这里我只是简单的演示一下。

  MyInterceptor实现好了,我们必须把它部署到我们的Struts上,首先我们必须在struts.xml文件中的package中定义一个interceptors标签,然后在标签里面定义一个interceptor标签,name属性是你自定义拦截器取的名字,class属性是MyInterceptor的全类名,这样子还不够,你的拦截器要在哪里用呢?所以在我们需要用到的action标签里面定义一个interceptor-ref标签,name对应上面的name,但是要注意到如果我们这么定义的话,原来的Struts内嵌的Interceptor就会给我们覆盖掉,所以我们要加多一个interceptor-ref标签,name为defaultStack,加上原来Struts的Interceptor,运行一个就可以看到效果了。

<interceptors>
  <interceptor name="MyInterceptor" class="com.xujianguo.util.MyInterceptor"></interceptor>
</interceptors>

 

<interceptor-ref name="MyInterceptor"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值