2016-06-30 3 views
0

J'ai une classe de haricots qui ressemble à ceEssayer de définir et obtenir l'attribut d'une classe à l'autre par une 3ème classe en JAVA

@ManagedBean(name = "usingBean") 
@SessionScoped 
public class UserInfo implements Serializable { 

    private static final long serialVersionUID = 2668727340500045081L; 

    String loginId; 

} 

Je donne la valeur des attributs haricots dans une classe de filtre.

Je suis en train d'obtenir cet attribut dans une autre classe de haricot

@ManagedProperty(value = "#{usingBean}") 
private UserInfo user; 

public UserInfo getUser() { 
    return user; 
} 

public void setUser(UserInfo user) { 
    this.user = user; 
} 
UserInfo neededBean = (UserInfo) context.getApplication() 
       .createValueBinding("#{usingBean}").getValue(context); 
       return neededBean.getLoginId(); 

Il dit null lorsque je tente d'imprimer, mais qu'il ne soit introduit dans le DB. Il ne change pas quand un utilisateur se connecte différents.

Répondre

0

Essayez avec la manière simple, dans la classe de filtre configurer votre attribut à la session

 FacesContext context = FacesContext.getCurrentInstance(); 
     HttpServletRequest request = (HttpServletRequest) context 
       .getExternalContext().getRequest(); 
     HttpSession httpSession = request.getSession(false); 
     httpSession.setAttribute("loginId", loginId); 

Dans l'autre classe, vous pouvez obtenir le « loginid » de la session ...

 FacesContext context = FacesContext.getCurrentInstance(); 
     HttpServletRequest request = (HttpServletRequest) context 
       .getExternalContext().getRequest(); 
     HttpSession httpSession = request.getSession(false); 
     String loginId= (String) httpSession.getAttribute("loginId"); 
+0

cela ne fonctionne pas. maintenant il ne pas insérer dans la DB aussi – CSD

+0

Déboguez-vous votre code? Lorsque la valeur de votre session est changée en null! – 9ine

+0

Je l'ai eu .. Merci beaucoup! – CSD