Bonjour,
J'ai une question toute bête.
La page d'accueil JSF 2 de mon site web est un .xhtml qui fait appel à un ManagedBean, qui débute ainsi :
Son web.xml contient ces directives-ci, pour faire la liaison Spring ↔ JSF 2 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 /** * Contrôleur de la base web d'accueil. */ @Component("accueil") @SessionScoped public class AccueilController extends AbstractController { /** Service d'installation. */ @Autowired private InstallationService serviceInstallation; /** Code commune sélectionné par l'utilisateur. */ private CodeCommune m_codeCommune; /** Code département sélectionné par l'utilisateur. */ private CodeDepartement m_codeDepartement; /** Code région sélectionné par l'utilisateur. */ private CodeRegion m_codeRegion;
L'annotation @SessionScoped du ManagedBean est du monde JSF (javax.faces.bean.SessionScoped) et ne suffit pas à elle seule à lui donner la portée désirée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <listener> <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> </listener>
Spring le considère toujours comme de portée singleton, et je dois changer ceci rapidement.
Faut-il que je place une directive en parallèle dans l'applicationContext.xml de mon application ?
Mais dans ce cas, qui comprend quoi ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part <bean id="accueil" class="fr.ardent.web.accueil.AccueilController" scope="session" />
Spring ne va t-il pas produire une deuxième instance distincte du ManagedBean qui fera concurrence à celle que JSF 2 s'est produite pour lui ?
Dois-je au contraire dégager le @SessionScoped que j'ai placé sur le ManagedBean parce qu'il n'est plus interprété ?
Merci beaucoup !
Partager