2013-04-24 55 views
1

我有一個download.jsp頁面,它具有僅在登錄時下載文件的功能。 當過他點擊它要求登錄下載下載選項,他重定向到登錄頁面,當他鑑別用戶應重定向到download.jsp在struts2中登錄後返回來電者頁面

這裏是我的struts.xml文件

<!DOCTYPE struts PUBLIC 
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
"http://struts.apache.org/dtds/struts-2.0.dtd"> 

<struts> 
    <package name="default" extends="struts-default"> 
     <result-types> 
      <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult" /> 
     </result-types> 
     <action name="loginAction" method="login" class="com.vaannila.action.LoginAction"> 
      <result name="sucess" type="tiles">welcome</result> 
      <result name="failure" type="tiles">home</result> 

     </action> 
    </package> 
</struts> 

在LoginAction類我有一個認證,並返回成功或失敗和由此產生的頁面被稱爲

我怎樣才能登錄後呼叫者返回頁面download.jsp只有一個方法登錄

+0

你會介意發佈你的控制器的「登錄」方法嗎?如果你總是想返回「download.jsp」,那麼使用動作重定向很容易。但如果你想返回「上一頁」,你必須在某個地方保存該URL,例如GET參數或者在會話 – Kossel 2013-04-24 04:17:46

+0

中,登錄方法只能根據用戶關注返回「成功或失敗」兩個值。會議。是否仍然可以返回上一頁並返回「成功或失敗」 – pavan 2013-04-24 10:21:23

回答

0

你有,你可以嘗試實現上述功能的幾個選項

HTTP Referer頭像

final String refer = request.getHeader("Referer"); 

沒有與此,防火牆和很好的瀏覽器可以阻止它,很少有問題這可能會導致一些問題,雖然我還沒有看到任何這樣的問題,並使用它幾次。

其他解決方案,它是更可靠的方法是使用一個隱藏的文件或追加當前頁面的URL作爲查詢字符串,並用它在你的應用程序一樣

<a href="login?destination=theCurrentUrl">Login</a> 

你可以使用這個變量來找出當前頁面URL並可以在登錄後重定向它。

如果您使用的是Spring安全性,則它具有此功能,可在其中存儲使用信息的位置,並在身份驗證後將其重定向回同一頁面。

希望這可能會幫助你