如果用户在一定时间内处于空闲状态,我想将他/她发送到
/login.xhtml
。我尝试了PrimeFaces <p:idlemonitor>
,但无法弄清如何实现。/login.xhtml
。我尝试了PrimeFaces <p:idlemonitor>
,但无法弄清如何实现。Use the IdleMonitor
component <p:idleMonitor>
<p:idleMonitor timeout="3000">
<p:ajax event="idle" listener="#{idleMonitorBean.processTimeOut()}"/>
</p:idleMonitor>
注意:超时时间单位为毫秒
在你的监听方法中指定redirect()
路径即可。
@Model
public class IdleMonitorBean {
public void processTimeOut() throws IOException {
FacesContext.getCurrentInstance().getExternalContext().redirect(
"/contextroot/index.xhtml");
}
}
您可以监视用户活动,例如点击(也许您认为鼠标移动或滚动不是空闲状态,这完全取决于您)。
var resetActivityTimer = function () {
if (typeof window.userActivity != 'undefined')
clearTimeout(window.userActivity);
window.userActivity = setTimeout(function () {
window.location.href = 'login.xhtml';
//number of ms until to be considered idle
}, 30000);
};
$(window).click(function () {
//if user clicked they are not idle
resetActivityTimer();
});
//initialize timer
resetActivityTimer();
在这种情况下,我更喜欢保持客户端的操作。PrimeFaces扩展pe:javascript
可以在这里提供帮助。例如:
<p:idleMonitor timeout="...">
<pe:javascript event="idle"
execute="top.location.href='#{request.contextPath}/login.xhtml'"/>
</p:idleMonitor>