2011-06-08 135 views
1

誰能告訴我如何使用Struts轉發或重定向頁面? 我正在檢查會話是否爲空或不在每個jsp中,並且如果爲null,則要重定向。我可以用簡單的jsp:forward或response.sendRedirect()來做到這一點,但我想重定向到我在struts.xml中聲明的struts2操作。我試圖把行爲名稱放在上面提到的標籤和方法中,但它沒有奏效。Struts2頁面重定向/轉發問題

if(session.getAttribute("user")!=null) 
    response.sendRedirect("loginAction"); 

反正有幹這事不能打電話到的.jsp直接,因爲我有添加一個安全約束在我的web.xml *的.jsp URL模式。所以我想要這樣做,或使用動作重定向。任何幫助?

回答

3

最好在FilterInterceptor中檢查。 This answer到一個類似的問題可能會有所幫助。

+0

或這一個http://www.vitarara.org/cms/struts_2_cookbook/creating_a_login_interceptor – leonbloy 2011-06-08 18:12:41

+0

謝謝Steven和leonbloy。我決定使用Intercepter。 – user759740 2011-06-09 03:56:12

0

首先,也許你會更願意爲您在一個攔截器(eg

其次授權使用(登錄),做在Struts2重定向到一個Struts2的動作,你只需要使用此時,相應result。如果沒有必要,訪問較低級別的對象(servlet相關)是不好的做法。

三,關於I can't call to a .jsp directly:你不能重定向到一個jsp url(因爲jsp不能從瀏覽器中,在你的體系結構中),但是你可以調用它,也就是顯示login.jsp來響應你的行動。如果您希望用戶在請求身份驗證時在瀏覽器中看到一些「... login.do」url,則這很簡單,只有客觀。