STRUTS拦截器有关问题
阅读
仿照着想实现拦截未登录用户,跳转到首页的功能。问题1:发现有的时候没有进入拦截器,我加了一个打印的地方。有的时候没打印出来。问题2:DEBUG调试,进入拦截器判断SESSION的语句了,也判断成功了,但是没能返回首页,跳转有问题。我把几个地方的代码贴一下,各位将就看看哈。
拦截器:
public class AuthorizationInterceptor extends AbstractInterceptor {
public String intercept(ActionInvocation arg0) throws Exception {
System.out.println("arg0:"+arg0.getAction().getClass().getName());
Map<?, ?> session = arg0.getInvocationContext().getSession();
Object obj=session.get(StaticConfig.SESSIONUSERINFO);
if(obj==null){
System.out.println("拦截器:用户未登录---");
return "index";
}else{
return arg0.invoke();
}
}
}
struts配置:
<package name="sbase" namespace="/" extends="struts-default">
<interceptors>
<!-- <interceptor name="configdebug" class="com.configdebug.interceptor.ConfigDebugInterceptor"/> -->
<interceptor name="authority" class="com.kjs.base.AuthorizationInterceptor"/>
<interceptor name="defaultin" class="com.kjs.base.DefaultInterceptor"/>
<interceptor-stack name="user" >
<!-- <interceptor-ref name="configdebug" /> -->
<interceptor-ref name="defaultin" />
<interceptor-ref name="authority" />
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
<interceptor-stack name="guest" >
<!-- <interceptor-ref name="configdebug" /> -->
<interceptor-ref name="defaultin" />
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="guest"/>
<global-results>
<result name="index" type="redirectAction">index</result>
<result name="error" type="redirectAction">/error.jsp</result>
</global-results>
------解决方案--------------------
问题一:有些进入拦截器、有些没有进入,你看下没进入的struts配置,他有没有extends='sbase'这个包
问题二:你将<result name="index" type="redirectAction">index</result>换成<result name="index" type="redirectAction">/index.jsp</result>试试
------解决方案--------------------
可能没调用到吧。你先写一个简单的拦截,然后在此基础上加。xml 里面的写的拦截顺序 也会影响执行方法的。
------解决方案--------------------
如果没有其它地方有配index1的跳转的话楼主先debug下是不是真的返回index1如果是的话重启下tomcat看看
阅读
上一篇:关于数据库查询的有关问题,求帮助 下一篇:返回列表