您的位置:首页 > 其它

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

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

解决方法一般有两种:

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

<action name="enterSystem_*" class="enterSystemManager" method="{1}">

<!-- 使用拦截器:进行权限检查 -->

<interceptor-ref name="defaultStack" />

<interceptor-ref name="autority" />

<result name="workerMangerUI">/WEB-INF/page/backstage/system/workerManager.jsp</result>

<result name="positionMangerUI">/WEB-INF/page/backstage/system/positionManager.jsp</result>

</action>


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

<action name="enterSystem_*" class="enterSystemManager" method="{1}">

<!-- 使用拦截器:进行权限检查 -->

<interceptor-ref name="params" />

<interceptor-ref name="autority" />

<result name="workerMangerUI">/WEB-INF/page/backstage/system/workerManager.jsp</result>

<result name="positionMangerUI">/WEB-INF/page/backstage/system/positionManager.jsp</result>

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