8
votes

Comment accéder à une propriété d'un haricot géré dans un autre haricot géré

J'ai un haricot géré (sessionscope comme suit) xxx

dans cette gantbean, quelque part dans la fonction de connexion, je stocke l'email comme une session.

i avoir un autre haricot géré appelé ChangePassword (ci-vieigné). J'ai besoin d'accéder à la valeur de l'email qui est stocké dans l'utilisateur.

La raison de le faire est que je dois trouver l'utilisateur actuel (email) avant que je puisse terminer la fonction de changement de mot de passe. (Besoin de changement de mot de passe pour cet email spécifique)

Comment puis-je le faire? Nouveau à JSF, appréciez toute aide!


0 commentaires

4 Réponses :


2
votes

Dans JSF2, je l'habitude d'utiliser une méthode comme ceci:.

public static Object getSessionObject(String objName) {
    FacesContext ctx = FacesContext.getCurrentInstance();
    ExternalContext extCtx = ctx.getExternalContext();
    Map<String, Object> sessionMap = extCtx.getSessionMap();
    return sessionMap.get(objName);
}


2 commentaires

Bien que cela fonctionne, il s'agit d'une approche plutôt maladroite pour obtenir une session de haricot géré de session dans un haricot géré.


Toujours apprendre ... et vous, @Ballusc, résolvez généralement mes problèmes. (Dans la plupart des cas, d'autres ont déjà demandé ce que je veux poser de questions et que vous avez répondu.)



17
votes

Il suffit d'injecter le haricot comme une propriété gérée de l'autre haricot. XXX

Voir aussi:


0 commentaires

0
votes

Si votre session SPOPED Bean est comme ceci: xxx

Vous pouvez accéder aux valeurs de ce haricot comme: xxx


0 commentaires

0
votes
public static Object getSessionObj(String id) {
   return FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get(id);
}

public static void setSessionObj(String id,Object obj){
   FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put(id, obj);
}
Add them in your managed bean : 

0 commentaires