转--struts2自定义拦截器导致无法传参

写在前面:action里面的参数一般只需要有setter就可以了,但若参数需要传递到struts.xml里面,比如<result type="redirectAction">${prePage}</result>,则这个prePage必须要加上getter,否则传递不了。因此,好的习惯是都加上getter。

今天做项目时,使用拦截器对用户权限检查。拦截器本身没有问题,可是实现权限拦截,但是传递的参数全部都无效了。搞了很久,由于对拦截器的内部机制不是特别熟悉,所以重新研读了一下Struts2的拦截器。找到了原因:给一个Acton配置一个自定义拦截器后,此action就无法使用框架默认的拦截器栈了,这就导致前后台数据传输无效。
解决方法一般有两种:

一、显示的使用默认拦截器

 


1 <action name="enterSystem_*" class="enterSystemManager" method="{1}">
2 <!-- 使用拦截器:进行权限检查 -->
3 <interceptor-ref name="defaultStack" />
4 <interceptor-ref name="autority" />
5 <result name="workerMangerUI">/WEB-INF/page/backstage/system/workerManager.jsp</result>
6 <result name="positionMangerUI">/WEB-INF/page/backstage/system/positionManager.jsp</result>
7 </action>

 

二、使用<interceptor-ref name="params" />让参数先传递

 


1 <action name="enterSystem_*" class="enterSystemManager" method="{1}">
2 <!-- 使用拦截器:进行权限检查 -->
3 <interceptor-ref name="params" />
4 <interceptor-ref name="autority" />
5 <result name="workerMangerUI">/WEB-INF/page/backstage/system/workerManager.jsp</result>
6 <result name="positionMangerUI">/WEB-INF/page/backstage/system/positionManager.jsp</result>
7 </action>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值