2016-09-29 2 views
0

Ich versuche, auf eine ID zuzugreifen, mit der ich mich bei einer anderen SQL-Abfrage an meiner Schnittstelle in einer anderen Klasse anmelde.So rufen Sie Sitzungszuordnungsdaten aus einer anderen Klasse in Java auf

Ich bin derzeit mit:

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); 
    } 

der mir den Benutzer-ID erhalten kann, und ich kann auf JSF Webseite, die Daten anzuzeigen.

Allerdings möchte ich diese ID in einer anderen Java-Klasse, dh viewregistereduserID.java bekommen. So möchte ich zum Beispiel die UserID, die für die Anmeldung verwendet wird, als String erhalten, der für andere Methoden verwendet werden kann.

Ich habe versucht, mit UserBean userBean = (UserBean) userdata.get ("userBean"); und @ManagedProperty (value = "# {userBean}"), aber das Ergebnis kommt beide Male als null heraus, wenn ich userBean.getUserID ausprobiert habe.

Ich habe in diesem Beispiel @SessionScoped für beide Java-Klassen verwendet.

Weiß jemand, wie ich auf die Daten in einer Zeichenfolge zugreifen kann?

Antwort

0

Mitteilung: Ich bin Englisch Lerner jetzt, wenn es irgendein Missverständnis ist, kann man mich

Was wissen lassen, ich nehme Sie den Wert zu tun, erstellen Sie einfach eine andere Klasse für die Rückkehr. Sie können eine Klasse Aufruf erstellen viewregistereduserID

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

}

in diesem Fall können Sie diese Klasse nennen als statische oder ein Objekt auf einer anderen Klasse.

nennen es auf andere Klasse: Sie ein Objekt erstellen:

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

}

+0

Hey danke für die schnelle Antwort. Leider hat deine Antwort nicht geklappt, aber dein Englisch scheint gut zu sein. :) – jni4

0

I, indem die Lösung auf meine eigene Frage herausgefunden:

private UserBean userInfo; 

    FacesContext context = FacesContext.getCurrentInstance(); 
    Map<String, Object> m = context.getExternalContext().getSessionMap(); 
    userInfo = (UserBean) m.get("userBean"); 
    System.out.println(userInfo.getUserID()); 
Verwandte Themen