日期:2014-05-18  浏览次数:20741 次

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>