Struts2_拦截器(方法拦截)

若无人伴你 愿你成你自己的太阳。

如果一个Action中,有很多方法,拦截器默认会将这些方法全部拦截掉,而有的时候是不需要全部拦截的,此时需要使用方法拦截器,选择哪些方法需要拦截或者哪些方法不需要拦截。

怎么实现方法拦截器?

继承MethodFilterInterceptor

package com.interceptor;

import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;

public class InterceptorDemo3 extends MethodFilterInterceptor{

    @Override
    protected String doIntercept(ActionInvocation arg0) throws Exception {
        System.out.println("拦截器生效");
        return arg0.invoke();
    }

}

struts.xml代码:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
    "http://struts.apache.org/dtds/struts-2.5.dtd">

    <struts>
        <package name="root" namespace="/" extends="struts-default">
        <!-- 配置拦截器 -->
            <interceptors>
                <interceptor name="Interceptor3" class="com.interceptor.InterceptorDemo3"></interceptor>
            </interceptors>
        <!-- Action方法 -->
            <action name="*User" class="com.action.User" method="{1}">
            <!-- 配置方法拦截器 -->
                <interceptor-ref name="Interceptor3">
                    <param name="includeMethods">add,edit</param>
                </interceptor-ref>
                <interceptor-ref name="defaultStack"></interceptor-ref>
                <result>/{1}.jsp</result>
            <!-- 配置需要动态调用的方法 -->
                <allowed-methods >add,edit,delete</allowed-methods>
            </action>
        </package>
    </struts>

Action方法:

package com.action;

import com.opensymphony.xwork2.ActionSupport;

public class User extends ActionSupport {
    public String add(){
        return "success";
    }
    public String edit(){
        return "success";
    }
    public String delete(){
        return "success";
    }
}

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值