想在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>
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>
2 ActionSupport.ERROR;//返回代表错误的串"error"
3 ActionSupport.NONE;//指execute()执行成功,但不返回视图"none"
4 ActionSupport.INPUT;//验证不成功时返回本串"input"
5 ActionSupport.LOGIN;//没有登录时返回串"login"我平常要跳到登录页面怎么用的是input 呢 楼主把error改成input试试!!
要么你随便return到一个制定的页面试试 啊 !!
</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>会不会是这里的原因?
和这个应该是没问题的,返回的都是个字符串,随便返回什么样的字符串都可以,匹配的是<result>标签的 name 属性