2016-09-29 10 views
0

SQLクエリの別のクラスのインターフェイスにログインするために使用されたIDにアクセスしようとしています。私はユーザーIDを取得することができますJavaの別のクラスからセッションマップデータを呼び出す方法

public void login (String UName) 
{ 
try 
    //sql stuff 

      FacesContext context = FacesContext.getCurrentInstance(); 
    Map<String, Object> userdata = context.getExternalContext().getSessionMap(); 

     UserBean userBean = new UserBean(); 
     userBean.setUserID(rs.getString(1).toString()); 
     userBean.setMajor(rs.getString(5).toString()); 
     userdata.put("userBean", userBean); 
    } 

を、と私はJSFのWebページ上のデータを表示することができます

私は現在使用しています。

しかし、別のJavaクラス、つまりviewregistereduserID.javaでそのIDを取得したいとします。たとえば、ログインに使用されたUserIDを他のメソッドで使用できる文字列として取得したいとします。

私はUserBeanを使用しようとしましたuserBean =(UserBean)userdata.get( "userBean");と@ManagedProperty(value = "#{userBean}")しかし、私はuserBean.getUserIDを試したときに結果がnullの両方として出てきます。

この例では、両方のJavaクラスで@SessionScopedを使用しました。

誰も私が文字列のデータをどのように処理できるか知っていますか?

答えて

0

通知:誤解がある場合、私は今、英語学習者です、私は値を返すためにあなただけの他のクラスを作成しますと仮定何

をお知らせください。 あなたはクラスのコールを作成することができ、この場合に

public class viewregistereduserID{ 
//fields 
public String userID; 
//constructor 
viewregistereduserID(String userID){ 
    this.userID=userID; 
} 
//method 
public String getUserID(){ 
    return this.userID; 
} 

}

をviewregistereduserID、あなたはstaticとして、このクラスを呼び出すか、他のクラスにオブジェクトを作成することができます。

は、他のクラスにそれを呼び出す: あなたがオブジェクトを作成することができます

public class login(String name){ 
    public static void main(String[] args){ 
      viewregistereduserID VID=new viewregistereduserID(); 
      System.out.print(VID.getUserID()); 
} 

}

+0

をおいてくれてありがとう素早い返信。残念ながらあなたの応答は私のためにうまくいかなかったが、あなたの英語は良いようだ。 :) – jni4

0

私がすることによって自分の質問に対する解決策を考え出し:

private UserBean userInfo; 

    FacesContext context = FacesContext.getCurrentInstance(); 
    Map<String, Object> m = context.getExternalContext().getSessionMap(); 
    userInfo = (UserBean) m.get("userBean"); 
    System.out.println(userInfo.getUserID()); 
関連する問題