2011-10-25 26 views
0

我正在谷歌應用程序引擎上開發基於struts的應用程序。我正在使用谷歌的用戶服務,以允許用戶登錄到我的應用程序。如何使用struts標籤在jsps中創建對象?

當用戶登錄他的谷歌帳戶並打開我的應用程序時,我的應用程序不能再次請求登錄。假設我的應用程序的主頁是index.jsp中,應該說

歡迎用戶[email protected]

要做到這一點,我要檢查是否有當前用戶或者不喜歡這個

<% 
UserService userService = UserServiceFactory.getUserService(); 
User user = userService.getCurrentUser(); 
if(user == null) 
    //login link 
else 
    //Welcome message 
%> 

但我不應該在我的應用程序中使用scriptlets。我必須使用struts標籤來實現這一點。

任何幫助,非常感謝。感謝大家提前和美好的一天。

回答

0

首先,您需要註冊登錄會話的用戶。你必須創建一個動作,你會把這確實與谷歌的支票賬戶代碼:

public LoginAction { 

    @Action(...) 
    public String login() { 
     UserService userService = UserServiceFactory.getUserService(); 
     User user = userService.getCurrentUser(); 
     ActionContext.getContext().getSession().put("user", user); 
     return "success"; 
    } 
} 

那麼你將不得不在JSP中可用的用戶。 jsp代碼將如下所示:

<s:if test="#session.user == null"> 
    //login link 
</s:if> 
<s:else> 
    //Welcome message 
</s:else> 

當用戶註銷時,您只需刪除會話對象。

如果您需要註銷用戶(如果他在他的Google帳戶中),則需要一個攔截器來檢查它是否始終保持記錄狀態。

+0

嗨@Juliano,這不是我問的。在用戶應該點擊一個鏈接的情況下,這種方法將起作用。但是,如果用戶輸入的網址類似於appspot.com/appid/index.jsp,則會失敗,因爲最初沒有會話。 –

+0

在這種情況下,您可以創建一個攔截器來檢查用戶是否登錄了您的應用程序。如果他沒有登錄,他會重定向到登錄操作。因此,無論他來自哪裏,您的應用程序都會知道如何處理它。 –

+0

謝謝@Juliano :) –

相關問題