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]