登录超时 拦截器里无法跳转到登录页面
@JFinal 你好,想跟你请教个问题:
我想使用拦截器实现用户登录超时后,进行操作时跳转到登录页面,debug后发现已经进入了我想要的interceptor,但是controller.redirect("/login.jsp");这句没有起作用,页面任然停留在正在操作的页面里。
public class LoginInterceptor implements Interceptor { @Override public void intercept(ActionInvocation ai) { Controller controller = ai.getController(); String loginUser = controller.getSessionAttr("username"); if (loginUser != null && !loginUser.equals("")){ ai.invoke(); }else{ controller.removeSessionAttr("username"); controller.redirect("/login.jsp"); //debug下能运行到这一步 但是不跳转 return; } } }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
十分感谢,找到原因了,是ajax请求造成的。顺便想问一下,如果是ajax请求的情况下,有什么好的方法实现页面跳转吗
回复
如果是 ajax,只需要 在 jfinal 这端使用renderJson("redirectUrl", "/login.jsp"); 然后 ajax 那端得到 redirectUrl 的返回值 "/login.jsp" 以后,通过 js 做个跳转即可: location.href = redirectUrl;
回复
回答的很详细,成功实现了,谢谢
回复
ajax请求的话 得到成功的消息 直接在页面重定向就行了