问题描述
我想定义一个拦截action中指定方法的拦截器,比如我只拦截add方法。我看到网上有人说extendsMethodFilterInterceptor可是我不知道怎么在stauts.xml中配置,请各位大牛帮帮忙啊
解决方案
解决方案二:
去我BLOG看下有个自定义拦截器的例子http://blog.csdn.net/java_cxrs/archive/2010/04/23/5519743.aspx
解决方案三:
嗯继承自MethodFilterInterceptor抽象基类就可以对方法进行拦截.和其他拦截器一样,重写doInterceptor(ActionInvocationinvocation)就可以了配置也很简单,只需要在interceptor的配置文件里设置两个属性:excludeMethods:指定不需要拦截的方法名includeMethods:指定需要拦截的方法名比如你有个testAction中有个add方法,你要拦截add,拦截器是TestInterceptor,则配置:<packagename="test"extends="struts-default"><interceptors><interceptorname="checkAdd"class="cn.mypack.TestInterceptor"></interceptor></interceptors><actionname="Login"class="cn.mypack.TestAction"><resultname="input">/login.jsp</result><resultname="success">/success.jsp</result><interceptor-refname="defaultStack"/><interceptor-refname="checkAdd"><paramname="includeMethods">add</param></interceptor-ref></action></package>
解决方案四:
二楼回答的很完美了,我就不说什么了,溜达溜达。
解决方案五:
拦截后让跳到另一个页面怎么做
解决方案六:
我这样写有什么问题publicclassMyInterceptor01extendsMethodFilterInterceptor{@OverrideprotectedStringdoIntercept(ActionInvocationarg0)throwsException{ActionInvocationinvocation=null;Mapmap=invocation.getInvocationContext().getSession();if(map.get("regname")==null){System.out.println("用户还没登陆");returnAction.LOGIN;}elseif(Integer.parseInt((String)map.get("role_id"))==2){System.out.println("您没有访问权限");returnAction.LOGIN;}else{//这个表示有权限的,关键是在stauts.xml里要怎么办Stringresult=invocation.invoke();System.out.println("result:"+result);returnresult;}}
解决方案七:
<interceptors><interceptorname="myMethod"class="pzhu.bus_man.interceptor.MyInterceptor01"><!--使用拦截器会使得默认的拦截器失效,所以将默认加入进来--></interceptor><!--<interceptor-stackname="myMethodStack"><interceptor-refname="defaultStack"/><interceptor-refname="myMethod"/></interceptor-stack>--></interceptors><!--<default-interceptor-refname="myMythodStack"></default-interceptor-ref>--><global-results><resultname="input">/error.jsp</result></global-results><global-exception-mappings><exception-mappingresult="input"exception="java.sql.SQLException"></exception-mapping></global-exception-mappings><!--自定义拦截器的使用--><actionname="user"class="pzhu.bus_man.action.UserAction"><resultname="list_ok">userlist.jsp</result><resultname="edit_ok">useredit.jsp</result><resultname="list_proscenium_ok">index/index.jsp</result><resultname="login">login.jsp</result><interceptor-refname="defaultStack"/><interceptor-refname="myMethod"><!--指定要拦截的方法includeMethods的优先级比excludeMethods的要高--><paramname="includeMethods">list</param></interceptor-ref><exception-mappingresult="failure"exception="java.lang.Exception"></exception-mapping></action>我只这样配置的
解决方案八:
该回复于2010-12-03 11:30:30被版主删除
解决方案九:
给你顶一下,以前没做过这种需求!
解决方案十:
二楼回答的对
解决方案十一:
解决了,谢谢各位
解决方案十二:
二楼的回答的很好支持这样做法