Bonjour !
J'ai un bean JSF en session que je souhaite le récupérer dans un autre bean. je suis débutant spring/JSF et j'ai pas trouvé de solution.
Merci de m'aider.
mon bean est annoté comme suit
Code:
1
2
3 @Controller("monBean") @Scope("session")
Version imprimable
Bonjour !
J'ai un bean JSF en session que je souhaite le récupérer dans un autre bean. je suis débutant spring/JSF et j'ai pas trouvé de solution.
Merci de m'aider.
mon bean est annoté comme suit
Code:
1
2
3 @Controller("monBean") @Scope("session")
salut,
pour injecter un bean dans un autre tu dois le declarer dans ton fichier faces-config comme une propriété du Bean
Mon problème c'est pas d'injecter un bean dans un autre mais c'est de récupérer le bean dans l'état où il est en session.
ça veut dire que si le bean est intialisé à un moment donnée je passe à un autre bean et dans ce dernier je peut récupérer ce bean déjà initialisé.
Je pense que c'est ça le but de mettre un bean en session si non ça doit passer en request.
Donc je peut faire un code similaire à ça
Merci d'avance.Code:
1
2 MonBean monBean = getSession().getAttribute("monBean");
Tu injectes le bean dont le scope est en session dans le bean où tu veux l'utiliser. Sauf si tu veux utiliser un bean avec un scope session dans un bean avec un scope applicatif.
Je n'ai jamais testé mais il n'y a pas de raison que cela ne fonctionne pas.
Sinon il y a FacesContextUtils.getWebApplicationContext(FacesContext.getCurrentInstance())
j'ai essayé FacesContextUtils.getWebApplicationContext(FacesContext.getCurrentInstance())
et ça marche merci pour l'aide