我想将用户发送到/login.xhtml
,如果他/她闲置了一段时间。我已尝试过primefaces <p:idlemonitor>
,但无法弄清楚如何实现这一目标。
答案 0 :(得分:1)
使用IdleMonitor
组件<p:idleMonitor>
<p:idleMonitor timeout="3000">
<p:ajax event="idle" listener="#{idleMonitorBean.processTimeOut()}"/>
</p:idleMonitor>
注意:timeout
以毫秒为单位
然后在您的侦听器方法中必须指定redirect()
路径。
@Model
public class IdleMonitorBean {
public void processTimeOut() throws IOException {
FacesContext.getCurrentInstance().getExternalContext().redirect(
"/contextroot/index.xhtml");
}
}
答案 1 :(得分:0)
您可以观看点击等用户活动(也许您认为鼠标移动或滚动不理想,完全取决于您)。
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 as ideal
}, 30000);
};
$(window).click(function () {
//if user clicked he/she is not ideal
resetActivityTimer();
});
//initialize timer
resetActivityTimer();
注意,如果您想将滚动或鼠标移动视为活动,请不要忘记限制事件。