Die `idleMonitor'-Komponente überwacht die Benutzeraktion und wird ausgelöst, wenn sich der Benutzer im Leerlauf befindet oder wieder aktiv wird. Die Leerlaufzeit ist standardmäßig auf 5 Minuten (300000 ms) festgelegt. Sie können die Dauer mithilfe des Timeout-Attributs wie folgt anpassen:
<!-- fire if user idle for 10 seconds --> <p:idleMonitor timeout="10000" onidle="idleDialog.show()"/>
In diesem Lernprogramm zeigen wir Ihnen ein Beispiel für "idleMonitor". Es wird ein Bestätigungsdialogfeld angezeigt, wenn der Benutzer 10 Sekunden lang nicht verwendet wird. Eigentlich ist dieses Beispiel von meiner Bank-Website inspiriert, es fordert mich immer auf, zu fragen, ob ich nach 5 Minuten im Leerlauf weiterfahren möchte.
Benutztes Werkzeug :
-
PrimeFaces 3.3
-
JSF 2.2.11
-
Eclipse 4.2
-
Maven 3
-
Tomcat 7
1. idleMonitor-Komponente
Wenn sich der Benutzer 10 Sekunden lang im Leerlauf befindet, wird ein Bestätigungsdialogfeld angezeigt, und Sie werden gefragt, ob der Benutzer fortfahren oder sich abmelden möchte.
-
Wenn ja, schließen Sie den Bestätigungsdialog und zeigen Sie eine Begrüßung an
Nachricht über 'Growl'-Komponente.
-
Wenn der Benutzer die Abmeldung wählt, schließen Sie auch den Bestätigungsdialog und zeigen a an
Logout-Nachricht über die 'Growl'-Komponente.
index.xhtml
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:p="http://primefaces.org/ui"> <h:head> </h:head> <h:body> <h1>PrimeFaces idleMonitor example</h1> <h:form> <p:growl id="msg" showDetail="true" sticky="true"/> <!-- If idle 10 seconds, run 'idleDialog' --> <p:idleMonitor timeout="10000" onidle="idleDialog.show()"/> <p:confirmDialog id="confirmDialog" message="You have been idle for at least 10 seconds, Please click ok to continue." header="Are you there?" severity="alert" widgetVar="idleDialog"> <p:commandButton id="confirm" value="Ok" update="msg" oncomplete="idleDialog.hide()" actionListener="#{idleBean.welcomeListener}"/> <p:commandButton id="Logout" value="LogMeOut" update="msg" oncomplete="idleDialog.hide()" actionListener="#{idleBean.logoutListener}"/> </p:confirmDialog> </h:form> </h:body> </html>
2. ManageBean
Geben Sie die Gesichtsmitteilung für die Komponente "Knurren" an.
IdleMonitorBean.java
package com.mkyong; import javax.faces.application.FacesMessage; import javax.faces.bean.ManagedBean; import javax.faces.context.FacesContext; @ManagedBean(name = "idleBean") public class IdleMonitorBean { public void welcomeListener() { FacesContext.getCurrentInstance().addMessage( null, new FacesMessage(FacesMessage.SEVERITY__WARN, "Welcome Back", "Continue your works.")); } public void logoutListener() { FacesContext.getCurrentInstance().addMessage( null, new FacesMessage(FacesMessage.SEVERITY__WARN, "You Have Logged Out!", "Thank you for using abc Online Financial Services")); //invalidate session, and redirect to other pages } }
Quellcode herunterladen
Laden Sie den Link herunter://wp-content/uploads/2012/08/primefaces-IdleMonitor-example.zip[primefaces-IdleMonitor-example.zip](11 KB)
Referenzen
idleMonitor Schaukasten]