想在session失效的时候跳转到登陆页面,可是总不能跳转,其他都运行的很好。请高手指点迷津!
java代码 public String intercept(ActionInvocation actionInvocation) throws Exception {

        Object action = actionInvocation.getAction();
        System.out.println("type=========" + action.toString());
        if (action instanceof LoginAction) {
            return actionInvocation.invoke();
        } 
        
        Map session = actionInvocation.getInvocationContext().getSession();
        User loginUser = (User) session.get("user");
        if (loginUser != null) {
            // 存在的情况下进行后续操作。
         System.out.println("==============ssssssssss===========");
        
            return actionInvocation.invoke();
        }else{
            // 否则终止后续操作,返回LOGIN
//            return "login";
            System.out.println("============"+Action.ERROR);
            return Action.ERROR;                                                                这里运行了,但是不跳转。
        } 
}xml             <interceptors>
         <!-- 定义拦截器 loginInterceptor 继承default的package中action都可以引用该拦截器-->
            <interceptor name="loginInterceptor" class="com.dmp.cms.util.AtionInterceptor" />
            <!-- 定义拦截器堆栈 loginInterceptorStack -->
            <interceptor-stack name="loginInterceptorStack">
             <!-- 引用默认拦截器 defaultStack -->
                <interceptor-ref name="defaultStack" />
                <!-- 引用自定义拦截器 loginInterceptor -->
                <interceptor-ref name="loginInterceptor" />
            </interceptor-stack>
        </interceptors>
        <default-interceptor-ref name="loginInterceptorStack"/>
        
        <global-results>
      <result name="error">/index.jsp</result>
     </global-results>

解决方案 »

  1.   

    1 return   ActionSuport.SUCCESS;//返回代表成功的串"success"
    2          ActionSupport.ERROR;//返回代表错误的串"error"
    3          ActionSupport.NONE;//指execute()执行成功,但不返回视图"none"
    4          ActionSupport.INPUT;//验证不成功时返回本串"input"
    5          ActionSupport.LOGIN;//没有登录时返回串"login"我平常要跳到登录页面怎么用的是input 呢 楼主把error改成input试试!!
    要么你随便return到一个制定的页面试试 啊 !!
      

  2.   

    我的请求都是用的Ajax,action里的方法都没返回值的。action配置都是这样的:<action name="checkUser" class="com.dmp.cms.actions.LoginAction" method="checkUser">
    </action>
    <action name="checkPwd" class="com.dmp.cms.actions.LoginAction" method="checkPwd">
    </action>
     <action name="updatePwd" class="com.dmp.cms.actions.UserAction" method="updatePwd">
    </action>
     <action name="getUserInfo" class="com.dmp.cms.actions.UserAction" method="getUserInfo">
    </action>
     <action name="saveUser" class="com.dmp.cms.actions.UserAction" method="saveUser">
    </action>
     <action name="deleteUser" class="com.dmp.cms.actions.UserAction" method="deleteUser">
    </action>
     <action name="getUserInfoById" class="com.dmp.cms.actions.UserAction" method="getUserInfoById">
    </action>
     <action name="updateUserInfo" class="com.dmp.cms.actions.UserAction" method="updateUserInfo">
    </action>
    <action name="getUserInfoByIdForSession" class="com.dmp.cms.actions.UserAction" method="getUserInfoByIdForSession">
    </action>
    <action name="updateUserInfoByIdForSession" class="com.dmp.cms.actions.UserAction" method="updateUserInfoByIdForSession">
    </action>会不会是这里的原因?
      

  3.   


    和这个应该是没问题的,返回的都是个字符串,随便返回什么样的字符串都可以,匹配的是<result>标签的 name 属性
      

  4.   

    Ajax是让页面不刷新的技术,既然页面不刷新,那怎么跳转,所以不能用Ajax