Bonjour,
En tant que débutant sur JEE je me pose quelques questions :
En effet je souhaite garder des informations de session sur un utilisateur, un exemple simple l'utilisateur tape son nom dans une page jsf ce nom est conservé durant toute la session. Appellons cet EJB SessionEJB.
Donc si j'ai bien compris les Stateless ne garde pas d'informations entre deux appels, donc j'opte pour les Statefull qui si j'ai toujours bien compris garde des informations entre plusieurs appels d'un objet (lien 1-1 avec un controller par exemple).
De plus j'ai un managed bean que j'appelle Controller à qui j'injecte mon SessionEJB que je met en @RequestScoped, et je rajoute une fonction doSetNom dans mon controller qui appelle le setNom de mon SessionEJB et qui renvoie sur la page d'accueil qui elle affiche le getNom de mon controller (qui appelle le getNom de mon EJB)
Jusque là je pensais que si une page JSF appellais mon doSetNom de mon controller et que je me balladais un peu de pages en pages et que je revenais sur ma page d'accueil, il y aurait encore marqué le nom de l'utilisateur !
Mais non, donc je décide de changer le scope de mon controller en SessionScoped, et la bingo ça marche ! Sauf que cela marche un peu trop bien.. En effet même si je change mon EJB en Stateless ça marche encore aussi !
Normalement en Stateless il n'aurait pas du conserver ces informations non ?
Désolé pour le roman mais j'ai peur de m'embrouiller un peu
Partager