struts2拦截器

struts拦截器使用

创建拦截器类

public class MyIntercept extends MethodFilterInterceptor {

    @Autowired
    RolePrivilegeService rolePrivilegeService;

    @Override
    protected String doIntercept(ActionInvocation actionInvocation) throws Exception {
        //从session域中取出用户信息
        User user =(User)ServletActionContext.getRequest().getSession().getAttribute("SYS_USER");

        //查询权限数据列表
        List<String> privilegeList = rolePrivilegeService.findByUid(user);
        
        //判断权限数据列表是否为空
        if (privilegeList != null){
            for (String privilege:privilegeList){
                //判断是否具有该权限
                if ("nsfw".equals(privilege)){
                      //代理action,执行方法
                      return actionInvocation.invoke();
                }
            }
        }
        return "false";
    }
}

拦截器注册

在对应的package中注册拦截器

<!--进行拦截器的注册操作-->
        <interceptors>
            <interceptor name="MyIntercept" class="com.dsm.intercept.MyIntercept">
                <!--指定当前方法拦截器对象要进行拦截的方法对象-->
                <param name="includeMethods">nsfw_frame</param>
                <!-- 指定对doThird方法不进行过滤操作 -->
                <!-- <param name="excludeMethods">doThird</param> -->
            </interceptor>
            
     
            <!--进行一个拦截器栈的注册操作-->
            <interceptor-stack name="MyInterceptStack">
                <interceptor-ref name="MyIntercept"/>
                <interceptor-ref name="defaultStack"/>
            </interceptor-stack>
        </interceptors>

在action中添加拦截器

 <action name="*_*" class="com.dsm.action.NsfwAction" method="{1}_{2}">
            <!--返回结果-->
            <result name="success">/WEB-INF/jsp/{1}/{2}.jsp</result>
            <result name="false">/WEB-INF/jsp/noPermissionUI.jsp</result>
            <interceptor-ref name="MyInterceptStack"></interceptor-ref>
 </action>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值