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);
	}
}