Bonjour,
Dans ma page d'acceuil j'ai un compteur qui me donne le nombre d'utilisateurs connectés à l'application.
J'utilise la balise <p:pol> pour scruter périodiquement si un nouvel utilisateur est connecté et mettre a jour le nombre.
Ce nombre affiché, est cliquable. Un clique permet d'ouvrir une pop up listant les utilisateurs connectés.
Mon problème est le suivant :
J'ai 2 utilisateurs connecté :
Ma page d'acceuil me dit "Nombre d'utilisateurs connectés : 2".Je clique sur le 2, une pop up s'ouvre et me liste les deux utilisateurs.
Un 3e utilisateurs se connecte.
Ma page d'acceuil se met a jour est marque "Nombre d'utilisateurs connectés : 3". Je clique sur le 3, une pop up s'ouvre et me liste les DEUX premiers utilisateurs.
En gros la liste ne s'est pas mise à jour....et je ne trouve pas la solution.
Si quelqu'un pouvait m'aider !!
Voici le code associé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <!-- Page d'acceuil --> <h:outputLabel id="utilisateursConnectesClientLeger" value="Nombre d'utilisateurs connectés : "/> <p:commandLink style="display:inline-block" actionListener="#{loginManager.refreshLogins}" update="@form" oncomplete="utilisateursConnectesClientLegerWidget.show();" > <h:outputText id="nombreUtilisateursClientLeger" value="#{loginManager.count}" /> <p:poll interval="10" process="@form" oncomplete="#{loginManager.count}" update="@form" async="true" immediate="true" /> </p:commandLink>
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 <!-- Dialogue permettant d'afficher la liste des utilisateurs connectés (client léger) --> <p:dialog id="utilisateursConnectesClientLegerDialog" header="Liste des utilisateurs connectés au client Léger" widgetVar="utilisateursConnectesClientLegerWidget" resizable="false" closable="false" modal="true" appendToBody="true" > <p:dataTable id="utilisateurClientLegerDataTable" var="utilisateur" value="#{loginManager.logins}" scrollable="true" scrollHeight="300" emptyMessage="Pas d'utilisateur connecté" widgetVar="utilisateurDataTableWidget" > <p:column headerText="Role" width="100" > <h:outputText id="role" value="#{utilisateur.role}" /> </p:column> <p:column headerText="Login" width="100"> <h:outputText id="site" value="#{utilisateur.login}" /> </p:column> <f:facet name="footer"> <div style="text-align: center;"> <p:commandButton id="annulerButton" value="Annuler" onclick="utilisateursConnectesClientLegerWidget.hide()"/> </div> </f:facet> </p:dataTable> </p:dialog>
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 @ManagedBean(eager=true) @ApplicationScoped public class LoginManager { private List<Utilisateur> logins= new ArrayList<Utilisateur>(); public List<Utilisateur> getLogins() { return logins; } public void setLogins(List<Utilisateur> logins) { this.logins = logins; } public int getCount() { return logins.size(); } public List<Utilisateur> refreshLogins(){ return getLogins(); } public void addLogins(){ Administrateur a = new Administrateur(); a.setLogin("test"); logins.add(a); } }
Partager