问题描述
拦截器如下packagecom.muzhi.Interceptor;importjava.util.Map;importcom.opensymphony.xwork2.ActionInvocation;importcom.opensymphony.xwork2.interceptor.AbstractInterceptor;publicclassTeaInterceptorextendsAbstractInterceptor{/****/privatestaticfinallongserialVersionUID=1008775964354634873L;@OverridepublicStringintercept(ActionInvocationinvocation)throwsException{Mapsession=invocation.getInvocationContext().getSession();Stringt=(String)session.get("user.teacher");Stringa=(String)session.get("user.admin");if(null==t){System.out.println("第二次拦截我就不出现了");return"error";}else{returninvocation.invoke();}}}struts.xml相关设置如下<interceptors><interceptorname="tea"class="com.muzhi.Interceptor.TeaInterceptor"></interceptor><interceptor-stackname="teaStack"><interceptor-stackname="teaStack"><interceptor-refname="tea"></interceptor-ref><interceptor-refname="defaultStack"></interceptor-ref></interceptor-stack></interceptors><actionname="showfiles"class="com.caizhou.action.ShowAciton"><resultname="success">/ShowPage.jsp</result><resultname="error">/login.html</result><interceptor-refname="teaStack"></interceptor-ref></action>action如下:packagecom.caizhou.action;importjava.util.List;importjavax.naming.InitialContext;importcom.caizhou.bean.FileInfo;importcom.caizhou.service.FileInfoDAO;importcom.opensymphony.xwork2.ActionSupport;publicclassShowAcitonextendsActionSupport{/****/privatestaticfinallongserialVersionUID=1L;privateintpageNow=1;privateintpageSize=5;privatebooleanhasNext=true;privateList<FileInfo>list;FileInfoDAOfile;publicintgetPageNow(){returnpageNow;}publicvoidsetPageNow(intpageNow){this.pageNow=pageNow;}publicintgetPageSize(){returnpageSize;}publicvoidsetPageSize(intpageSize){this.pageSize=pageSize;}publicList<FileInfo>getList(){returnlist;}publicvoidsetList(List<FileInfo>list){this.list=list;}publicbooleanisHasNext(){returnhasNext;}publicvoidsetHasNext(booleanhasNext){this.hasNext=hasNext;}@OverridepublicStringexecute()throwsException{InitialContextctx=newInitialContext();file=(FileInfoDAO)ctx.lookup("FileInfoDAObean/remote");list=file.getPage(pageSize,pageNow);hasNext=file.hasNext(pageSize,pageNow);System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");returnSUCCESS;}}我发现拦截器第一次可以成功拦截,但是以后无论我session里面有没有正确信息它直接返回的result都是error,奇怪的是红色字段的内容再也不print出来.
解决方案
解决方案二:
顶起来啊,救命啊。。。。
解决方案三:
学习
解决方案四:
up
解决方案五:
up
解决方案六:
对你的现象不太了解,有一点。你的配置里面,只是对一个Action指定了拦截器。是不是你运行其他的Action的时候,拦截器没有起到作用。
解决方案七:
<interceptors><interceptorname="tea"class="com.muzhi.Interceptor.TeaInterceptor"></interceptor><interceptor-stackname="teaStack">---没有结束标志<interceptor-stackname="teaStack"><interceptor-refname="tea"></interceptor-ref><interceptor-refname="defaultStack"></interceptor-ref></interceptor-stack></interceptors>
解决方案八:
学习
解决方案九:
解决方案十:
<interceptors><interceptorname="tea"class="com.muzhi.Interceptor.TeaInterceptor"></interceptor><interceptor-stackname="teaStack"><interceptor-refname="tea"></interceptor-ref><interceptor-refname="tea"></interceptor-ref>--->引用两次看看能不能符合你的要求<interceptor-refname="defaultStack"></interceptor-ref></interceptor-stack></interceptors>