Soyez le premier à donner votre avis sur cette source.
Snippet vu 13 650 fois - Téléchargée 15 fois
import javax.faces.context.FacesContext; import javax.servlet.http.HttpSession; /** * <b>UtilitaireSession est une classe qui permet d'enregistrer et de récupérer * des paramètres dans la session sur le poste de travail de l'utilisateur</b> * * @author Julien * @version 2.0 */ public class UtilitaireSession { /** L'instance de Session */ private static final UtilitaireSession instance = new UtilitaireSession(); /** Identifiant de la variable nom dans la session */ private final String NOM_UTILISATEUR = "NOM"; /** Identifiant de la variable age dans la session */ private final String AGE_UTILISATEUR = "AGE"; /** * Constructeur prive du singleton */ private UtilitaireSession(){ super(); } /** * Fonction permettant de recuperer l'instance de Session * @return l'instance de Session */ public static UtilitaireSession getInstance() { return instance; } /** * Fonction qui vérifie le contexte * @return vrai si le contexte permet de recuperer une session */ private boolean isContextOk(FacesContext fc){ return fc!=null && fc.getExternalContext()!=null && fc.getExternalContext().getSession(false)!=null; } /** * Fonction qui recupere une session à partir du faces context */ private HttpSession getSession(FacesContext fc){ return (HttpSession) fc.getExternalContext().getSession(false); } /** * Fonction qui permet de recuperer un objet dans la session * @param cle * La cle de l'objet a recuperer * @return l'objet correspondant */ private Object get(String cle){ FacesContext fc = FacesContext.getCurrentInstance(); Object res = null; if(isContextOk(fc)){ res = getSession(fc).getAttribute(cle); } return res; } /** * Procedure qui permet d'enregistrer une variable dans la session * @param cle * La cle qui permet d'identifier la varaible dans la session * @param valeur * La valeur a enregistrer */ private void set(String cle, Object valeur){ FacesContext fc = FacesContext.getCurrentInstance(); if(fc !=null && fc.getExternalContext()!=null){ getSession(fc).setAttribute(cle, valeur); } } /** * Procedure qui permet d'enregistrer l'age dans la session * @param age * L'age a enregistrer */ public void setAge(int age){ set(AGE_UTILISATEUR, age); } /** * Fonction qui permet de recuperer l'age dans la session * @return l'age */ public int getAge(){ return ((Integer)get(AGE_UTILISATEUR)); } /** * Procedure qui permet d'enregistrer le nom dans la session * @param nom * Le nom a enregistrer */ public void setNom(String nom){ set(NOM_UTILISATEUR, nom); } /** * Fonction qui permet de récupérer le nom dans la session * @return le nom a recuperer */ public String getNom(){ return ((String)get(NOM_UTILISATEUR)); } }
Pour cela, il faut que tu initialise la variable de ton managedBean avec la valeur de la variables dans la session.
private String valeurAAfficher;
public ManagedBean(){
valeurAAfficher=UtilitaireSession.getInstance().get("Variable");
}
public String getValeurAAfficher(){
return valeurAAfficher;
}
Et tu affiche #{managedBean.valeurAAfficher} dans la page jsf
@Julien39,
Merci pour ta source. Mais s'il te plait, pourrais-tu nous indiquer comment faire appel à cet utilitaire pour affiche par exemple la valeur d'une variable de session dans une page jsf?
Merci d'avance
merci pour tout.
En tout cas, cette classe n'est pas un managed bean, elle ne décris pas les éléments de la vue. Je la place dans mes projets au niveau de la vue (puisqu'elle est liée à jsf) dans un package util.
comme:
- backing managed bean ?
- controller managed Bean ?
- Model managed bean?
- support managed beans ?
- autres..
c'est quand même bien d'avoir une session, mais l'utiliser dans un contexte precis , avec un role precis est quand même important.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.