2016-09-29 5 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 웹 페이지에 데이터를 표시 할 수 있습니다

내가 현재 사용하고 있습니다.

그러나이 ID를 다른 Java 클래스 (예 : viewregistereduserID.java)에서 가져 오려고합니다. 예를 들어, 다른 메소드에 사용할 수있는 문자열로 로그인하는 데 사용되는 UserID를 가져 오려고합니다.

나는 UserBean을 사용해 보았습니다. userBean = (UserBean) userdata.get ("userBean"); 및 @ManagedProperty (value = "# {userBean}")하지만 userBean.getUserID를 시도했을 때 두 번 null로 결과가 나타납니다.

이 예제에서 두 클래스 모두 @SessionScoped를 사용했습니다.

문자열에서 데이터를 액세스하는 방법을 아는 사람이 있습니까?

답변

0

알림 : 지금 어떤 오해가있는 경우 영어 학습자입니다, 제가 방금 반환 값을 다른 클래스를 생성 할 생각은 무엇

알려 주시기 바랍니다. 당신은 클래스 호출을 만들 수 있습니다이 경우

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

}

을 viewregistereduserID, 당신은 정적이 클래스를 호출하거나 다른 클래스에 객체를 생성 할 수 있습니다.

다른 클래스에 전화 : 당신이 개체를 만들 수 있습니다

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

} I에 의해 내 자신의 질문에 대한 해결책을 알아 냈

+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());