这是拦截器
public class LoginInterceptor  extends AbstractInterceptor   {
 @Override  
 public String intercept(ActionInvocation invocation) throws Exception {
 /**         
  * invocation.getAction()是得到当前访问的Action          
  */ 
 ActionContext ctx=invocation.getInvocationContext();
 Map session=ctx.getSession();
 String username=(String)session.get("user");


 if(username!=null)    
 {           
  return invocation.invoke(); 
 }  
 
ctx.put("tip","您还没有登录,请重新登录");
return Action.LOGIN;
                
 
 }下面是xml配置
  <package name="com.erp.xitonggl.user.action" extends="struts-default">   
     
       <interceptors>      
          <interceptor name="loginInterceptor" class="com.erp.xitonggl.user.action.LoginInterceptor"></interceptor>   
          <interceptor-stack name="mydefault">
          <interceptor-ref name="loginInterceptor"/> 
          <interceptor-ref name="defaultStack"/>      
          </interceptor-stack>             
          </interceptors>      
             
          <default-interceptor-ref name="mydefault"/><!--覆盖掉原来的默认拦截器,注意,这个要放在interceptors的外面-->
          
          <global-results>
          <result name="login">/Site/xitonggl/yonghugl/loginFalse.jsp</result>
          </global-results>
        
 
            
         <!-- 查询用户信息 -->
         <action name="queryUserList" class="com.erp.xitonggl.user.action.UserListAction" method="queryUserList">                    
         <result name="userList" type="dispatcher">/Site/xitonggl/yonghugl/usermanage.jsp</result> 
            <interceptor-ref name="mydefault" />  
          
         </action>
         <!-- 根据查询条件查询用户信息 -->
         <action name="queryUserBy" class="com.erp.xitonggl.user.action.QueryUserByAction" method="queryUserByName">                    
         <result name="userList" type="dispatcher">/Site/xitonggl/yonghugl/usermanage.jsp</result>          
         </action>
         <!-- 删除用户信息 -->
         <action name="deleteUser" class="com.erp.xitonggl.user.action.UseUserAction" method="deleteUser">                    
         <result name="deleteUser" type="dispatcher">/Site/xitonggl/yonghugl/deleteOK.jsp</result>          
         </action>
               
      </package>   写完了 就是不管用啊   谁给解释下啊 

解决方案 »

  1.   

    首先 你要搞清楚,自定义的拦截器只能拦截 *.action 的请求, 你是拿什么请求做的测试
    然后你看看你的user 有没有放进去,你怎么放的个字符串啊,别人都是对象来着~~
      

  2.   

    我又重新写了下代码 
     public String intercept(ActionInvocation invocation) throws Exception {
     
    Object username=ActionContext.getContext().getSession().get("user");
     if(username!=null)    
     {       System.out.println("true");     
      return invocation.invoke(); 
     }  
     
     else{
     System.out.println("false");
          return "login";
     }      
     
     }
    <package name="com.erp.xitonggl.user.action" extends="struts-default">   
           <interceptors>      
              <interceptor name="loginInterceptor" class="com.erp.xitonggl.user.action.LoginInterceptor"/>   
                        <interceptor-stack name="mydefault">  
                   <interceptor-ref name="defaultStack" />  
                   <interceptor-ref name="loginInterceptor" />
                        </interceptor-stack>                   
              </interceptors>      
              <default-interceptor-ref name="mydefault"/>
              <global-results>
              <result name="login">/Site/xitonggl/yonghugl/loginFalse.jsp</result>
              </global-results>
    现在的问题是访问action 根本没有调用拦截器,看了半天有没看出怎么回事啊。。