利用注解配置拦截器

本文介绍如何使用注解在Struts2框架中配置拦截器,包括自定义拦截器类、配置拦截器栈及在Action中引用的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

struts2的拦截器是一个十分重要的功能,我们今天就讨论一下利用注解来配置拦截器,上代码。

public  class Test extends AbstractInterceptor{
private String name="hello";

@Override
public String intercept(ActionInvocation invocation) throws Exception {
// TODO Auto-generated method stub
ActionContext ctx = invocation.getInvocationContext();
Map session=ctx.getSession();
if(name!=null){
System.out.println("hahahhahah");
return invocation.invoke();
}
else{
System.out.print("wrong!");
}

return null;
}

}

这是拦截器类的代码。

以下是struts2中的代码

<package name="yang" extends="json-default">
<interceptors>
<interceptor name="test" class="util.Interceptor.Test" />
<interceptor-stack name="testStack">
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="test"></interceptor-ref>
</interceptor-stack>
</interceptors>


</package>

package的名字可以自己取,只需要保持统一即可,如果Action的代码中使用了JSON,最好把extends属性写成“json-default”(后来测试一下,发现写成struts-daefault)也是可以的,这样XML的配置就完成了。

然后是对需要引入的Action配置拦截器

配置方法一:

@Namespace("/QuesDesign")
@ParentPackage("yang")  //这里指定ParentPackage必不可少
@InterceptorRefs(@InterceptorRef("testStack"))
public class QuesDesignAction {

@Action1

@Action2

.................

.................

}

这样对Namespace为QuesDesign下的所有Action都引入了拦截器,不需要给Action1,Action2单独配置。、

如果只想对QuesDesignAction类下的Action1配置拦截器的话,可以这样写:

配制方法二:

@Namespace("/QuesDesign")
@ParentPackage("yang")  //这里指定ParentPackage必不可少

public class QuesDesignAction {

@Action1(value = "/action1",interceptorRefs={@InterceptorRef("testStack")})



}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值