2012-07-26 123 views
0

我使用Struts2的爲我的項目的頁面。 從事簡單的註冊項目。當用戶登錄時,他被引導到他的個人資料,但在瀏覽器的後退按鈕登錄頁面再次出現。 XML:刷新上打後退按鈕

<action name="home" class="bharat.Home"> 
      <result name="success">/jsp/home.jsp</result> 
      <result name="student">/jsp/Welcome.jsp</result> 
</action> 
<action name="Login" class="bharat.LoginAction"> 
      <result name="input">/index.jsp</result> 
      <result name="success">/jsp/Welcome.jsp</result> 
</action> 

Home.java:

public String execute() { 
      if((String)ActionContext.getContext().getSession().get("studentName")!=null) 
     { 
      return "student"; 
     } 
     if((String) ActionContext.getContext().getSession().get("instructorName")!=null) 
     { 
      return "instructor"; 
     } 
     session = ActionContext.getContext().getSession(); 
     session.put("roleName","notAdmin"); 
     return SUCCESS; 
    } 

回到Home.jsp

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<meta name="cache-control" content="no-cache" /> 
<meta name="expires" content="0" /> 
<meta name="pragma" content="no-cache" /> 
    <sx:head/> 

我想,當用戶正在登錄後打回按鈕,他必須被重定向回同一頁。誰能幫我請..

回答

0

您可以使用後和重定向方法,所有你需要的時候用戶登錄,他/她應該被重定向到歡迎頁面。 如果你看到銀行網站或任何其他安全的網站,他們已經部署了相同的機制,它工作得很好。

其次,我建議不ActionContext發揮其作爲Struts2的給你一個更清潔,靈活的方式來實現SessionAware接口,通過實施這你的行動是從底層框架依賴灑脫測試

+0

謝謝你寶貴的時間。 – Bharat 2012-07-26 13:38:51

+0

我試圖重定向到歡迎頁,但仍然在打後退按鈕將它移動到登錄page.Sir,我必須失去了一些東西,你可以解決eloborate。 – Bharat 2012-07-26 14:12:20

2

據我所知,目前的流動是這樣的:

用戶連接到URL - >提供了登錄頁面上登錄 - >加載第一 頁

你認爲改變流動於以下內容:

用戶連接到URL - >提供了登錄頁面上登錄 - >轉到頁 與autoredirect直接到第一頁 - >加載第一頁。

這種方式,當用戶從'第一頁'恢復按鈕時,它會得到重定向頁面,並自動返回'第一頁'。

+0

感謝您的寶貴時間。 – Bharat 2012-07-26 13:39:16

-1
<script type="text/javascript"> 
    function fn() 
     { 
       window.open("WelcomeDirect.action","_self");    
     } 
</script> 
</head> 
<body onLoad="fn()"> 
Reloading..... 
</body> 

重定向頁面