Bonjour à tous,
j'ai crée un projet JSF (Primefaces) et j'ai un gros soucis lors de l'accès à mon site sur deux ordinateurs différents. En gros je partage des informations entre les clients alors que ce n'est pas ce que je veux.
Avec un exemple c'est plus simple, je gére la navigation via un bean, le point d'entrée est l'index.xhtml suivant :
Le Bean est comme ceci :
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 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:p="http://primefaces.org/ui" > <h:form id="form_body"> <p:outputPanel id="body"> <p:outputPanel> <ui:include src="../#{navigationBean.page}.xhtml" /> </p:outputPanel> </p:outputPanel> </h:form> </ui:composition>
Lorsque je me connecte avec le premier pc à l'adresse de mon tomcat j'arrive sur la page d'accueil comme précisé par défaut dans le bean ci dessus. Je clique sur le bouton FAQ, je met donc à jour la variable "page" et je recharge l'index.xhtml, c'est donc la page FAQ qui se charge.
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 package com.test.beans; import java.io.Serializable; import javax.annotation.Resource; import javax.faces.bean.RequestScoped; import org.springframework.stereotype.Component; import com.test.enums.EnumNavigation; @Component("navigationBean") @RequestScoped public class NavigationBean implements Serializable{ private static final long serialVersionUID = 5260116730324981516L; private String page = EnumNavigation.ACCUEIL.getLibelle(); public void navigateToAccueil() { this.page = EnumNavigation.ACCUEIL.getLibelle(); } public void navigateToFAQ() { this.page = EnumNavigation.FAQ.getLibelle(); } ... public String getPage() { return page; } public void setPage(String page) { this.page = page; } }
A ce moment, sur le second pc, si je me connecte à la même adresse que sur le premier pc, j'arrive directement sur la page de la FAQ et pas du tout sur celle de l'accueil. Le Bean (j'ai essayé de le mettre en @ScopeSession aussi ça ne change rien) a donc l'air d'être partagé et je ne comprend pas pourquoi...
Quelqu'un aurait-il une idée ?
Si besoin de plus d'infos, web.xml, ...n'hésitez pas à me demander, j'ai vraiment du mal à avancer sur ce point qui est évidemment un énorme soucis
Merci beaucoup !
Partager