14
回答
session超时后跳转的问题
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

项目采用SpringMVC+Mybatis+easyui1.3

项目结构类似下图:

其中index.jsp在WebRoot下,其余的页面在WEB-INF下,

现在就遇到一个比较蛋疼的问题,就是session超时后点击左侧菜单栏跳转时会在右侧打开首页,怎么才能解决这个问题?

spring-xxx.xml中的配置类似如下:

请问如何在其中配置才能在点击左侧菜单栏时不出现首页在右侧打开的情况呢?

网上找到个解决方案没看明白,好像和我的情况还不太一样,

http://blog.csdn.net/fly2749/article/details/8702855 附上网址,希望众神们能给小弟解释解释或者亲爱大侠们你们能想到解决方案,再次先谢谢诸位大神们了。谢谢!静待佳音……

举报
javacc
发帖于4年前 14回/3K+阅
共有14个答案 最后回答: 4年前

首先我想你说的session超时,应该是指用户登录上去之后,保存在session中的用户对象因为session超时时间设置而找不到了的情况吧?

那就是说,用户要访问的右侧页面必须是登录状态下才能访问的页面了。那常见的就2中解决方案:

1,那在整体代码结构上,这种用户登录后才能访问的页面control,就应该继承同一个根control,这个跟control里面有个执行任何control方法前都必执行的方法,这个方法内检查session中的用户对象,如果没有,跳转到登陆页面;有则执行后继control方法。

2,方法1是建立在你的整个java类结构就是这个结构的基础上,如果你已经写好所有的control了,结构不是这样,那只能用spring mvc的拦截器了。配置拦截器要拦截的所有必须登录的访问路径,然后在拦截器的前置拦截方法中,判断session中是否有用户对象,如果没有就跳转登录页;如果有,则交给后续control执行之。

之后在你点击加载完右边页面后,用js方法来判断右边是否是“期望页面”,如果出现了“登录页”,则通过js操纵DOM元素,就可以把整个登录页展现成全屏,从而盖掉左边的菜单。这个时候的JS实现方式就非常多了。比如在原页面加载右边之后的回调方法中判断下登录页中某个唯一性标示,如果发现,则说明是登录页,则把登录页整个HTML抽取出来覆盖掉当前页的HTML。

引用来自“一路找北”的答案

在Controller里直接用response取PrintWriter出来,写一段js到客户端,parent.location=首页地址,能行么?

没试过
--- 共有 1 条评论 ---
xiaohua520可以试试,我们的也是这样处理的 4年前 回复

引用来自“smh821025”的答案

楼主,我是博客的博主,有问题可以q我,(在我不忙的时候)
qq公布下啊

引用来自“javacc”的答案

引用来自“smh821025”的答案

楼主,我是博客的博主,有问题可以q我,(在我不忙的时候)
qq公布下啊
你留q吧,我加你
碰到过这个问题,右侧是iframe吧,在首页加一段js代码,如果首页在iframe中则父框架跳转首页。

引用来自“roywang”的答案

碰到过这个问题,右侧是iframe吧,在首页加一段js代码,如果首页在iframe中则父框架跳转首页。
那个什么top.location='index.jsp' 对吧,没用

引用来自“smh821025”的答案

楼主,我是博客的博主,有问题可以q我,(在我不忙的时候)
加我这个qq吧:2947384635
顶部