2011-10-25 10 views
0

私はstrutsベースのアプリケーションをGoogleのアプリケーションエンジンで開発しています。私はユーザーのアプリケーションにログインできるようにGoogleのユーザーサービスを使用しています。strutsタグを使ってjspsでオブジェクトを作成するには?

ユーザーがGoogleアカウントにログインしてアプリケーションを開くと、自分のアプリケーションで再度ログインを要求してはいけません。私のアプリケーションのホームページはindex.jspがあり、それはそうするために

ようこそユーザー[email protected]

を言うべきものと、私は現在のユーザーが存在するかどうかを確認するか、この

を好きではないしなければなりません
<% 
UserService userService = UserServiceFactory.getUserService(); 
User user = userService.getCurrentUser(); 
if(user == null) 
    //login link 
else 
    //Welcome message 
%> 

私はアプリケーションでスクリプトレットを使用するはずです。私はstrutsタグを使ってこれを達成しなければなりません。

ご協力いただきまして誠にありがとうございます。あらかじめ、お疲れ様でした。

答えて

0

まず、セッションにログインしているユーザーを登録する必要があります。あなたは、Googleと当座預金口座を行うコードを置くアクションを作成する必要があります。

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のようにURLを入力すると、最初はセッションがないので、これは失敗します。 –

+0

この場合、ユーザーがアプリケーションにログインしているかどうかを確認するインターセプタを作成できます。彼がログに記録されていない場合、彼はログインアクションにリダイレクトされます。したがって、どこから来ても、アプリケーションはそれを処理する方法を知っています。 –

+0

ありがとう@Juliano :) –

関連する問題