2017-03-05 227 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-空閒解決了我的要求。