Struts2

xiaoxiao2021-02-28  72

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

如果一个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"; } }

转载请注明原文地址: https://www.6miu.com/read-72463.html

最新回复(0)