您的位置:首页 > 编程语言 > Java开发

解决Struts2拦截器的对于参数传递无效问题

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

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

View Row Code
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" />让参数先传递

View Row Code
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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: