AbstractInterceptor 不能跳转到指定页面

泽风 2010-07-20 04:17:14
想在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>
...全文
390 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
泽风 2010-07-21
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 cnff2007 的回复:]

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

页面跳转时在后台执行的,和前台刷不刷新有关系吗?不是很懂,能说清楚点吗?
autocomplete 2010-07-21
  • 打赏
  • 举报
回复
mark ...............
cnff2007 2010-07-21
  • 打赏
  • 举报
回复
Ajax是让页面不刷新的技术,既然页面不刷新,那怎么跳转,所以不能用Ajax
泽风 2010-07-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ontrackfor19888 的回复:]

1 return ActionSuport.SUCCESS;//返回代表成功的串"success"
2 ActionSupport.ERROR;//返回代表错误的串"error"
3 ActionSupport.NONE;//指execute()执行成功,但不返回视图"none"
4 ActionSupport.INPUT;//验证……
[/Quote]

和这个应该是没问题的,返回的都是个字符串,随便返回什么样的字符串都可以,匹配的是<result>标签的 name 属性
泽风 2010-07-21
  • 打赏
  • 举报
回复
我的请求都是用的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>

会不会是这里的原因?
ontrackfor19888 2010-07-20
  • 打赏
  • 举报
回复
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到一个制定的页面试试 啊 !!
liuyake250 2010-07-20
  • 打赏
  • 举报
回复
我试了可以的啊,你换个浏览器试试,我刚才用ie也有好几次没变
泽风 2010-07-20
  • 打赏
  • 举报
回复
沙发自己坐了

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧