在空闲一段时间后将用户重定向到主页

时间:2014-05-04 08:26:23

标签: jsf redirect primefaces idle-timer

我想将用户发送到/login.xhtml,如果他/她闲置了一段时间。我已尝试过primefaces <p:idlemonitor>,但无法弄清楚如何实现这一目标。

2 个答案:

答案 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();

注意,如果您想将滚动或鼠标移动视为活动,请不要忘记限制事件。