2017-03-05 233 views
0

我在我的应用程序中使用了与spring mvc相关的angularjs。它是一个具有登录按钮和多个选项卡的单页应用程序。除非用户登录,否则选项卡不可见。用户登录后,选项卡将显示(登录按钮将不可见),用户可以在任何选项卡下导航和使用功能。所有这些操作的URL都是相同的(例如:www.xyz.com/context/)。Spring MVC AngularJS页面刷新/重定向

我与这里的会话管理问题。如果会话在用户处于任何这些选项卡时到期,请选择选项卡号。 3,该页面应该被重置为初始状态,其中登录按钮是可见的而标签不是。像下面

<security:session-management invalid-session-url="/invalidSession"> 
    <security:concurrency-control expired-url="/" /> 
</security:session-management> 

会话到期

我已经配置春季会议管理,我有Spring MVC的控制器,其配置来处理它。如下所示。

@RequestMapping(value="/invalidSession", method = RequestMethod.GET) 
public ModelAndView invalidSession() { 
    ModelAndView model = new ModelAndView("redirect:/"); 
    model.setStatus(HttpStatus.); 
    return model; 
} 

虽然这种方法被称为会话到期,重定向不会重置我的网页到它的初始状态只能登录按钮是可见的。相反,它在制表符号中保持相同的状态。 3和所有其他标签仍然可见。如果我点击浏览器刷新按钮,它工作正常。

我也曾在上面的控制器方法使用model.setStatus(HttpStatus.RESET_CONTENT);试过了,仍然无法正常工作。

我通过这个问题去了Spring security and angular javascript redirect to login page,但它是我的要求有点复杂,我的要求很简单。我想我们应该能够通过适当的重定向来处理它通过弹簧的会话管理,它将重置我的页面。

我该如何做到这一点?

+0

如果会话过期,会发生什么情况,他们会留在同一页面上吗?或在tab3上?你能分享你的html代码吗? –

+0

它保留在标签3中。我找到了适合我的要求的替代解决方案。我已在下面发布。 – Maz

回答

0

好的。我采取了一种有角度的方法。我使用了Angular session timeout and management中概述的ng-idle组件。

而且,我已删除春季会议管理标签为NG-空闲解决了我的要求。