如何通知用户会话时间已过?

时间:2013-09-27 15:40:49

标签: session jsf-2 primefaces managed-bean

我在bean中创建了一个方法

public void checkSessionLife() {
        if (FacesContext.getCurrentInstance().getExternalContext().getSession(false)==null) {
            System.out.println("*\n");
            System.out.println("destroyed");
            FacesContext.getCurrentInstance().addMessage("sessiongr", new FacesMessage(FacesMessage.SEVERITY_INFO, "erer", "errrrrrrrrr"));
            RequestContext requestContext = RequestContext.getCurrentInstance();
            requestContext.update(Arrays.asList("hreaderForm:sessiongr"));
        }
    }

并在我的PgTemlate.xhtml我添加<p:poll>来更新<p:growl>

<p:poll interval="5" listener="#{accessBean.checkSessionLife()}" process="@this" global="false"/>
                <p:growl id="sessiongr" showDetail="true" sticky="true"/>

问题是该活动被视为<p:poll>个活动会话 他有另一种通知用户的方法吗?

1 个答案:

答案 0 :(得分:0)

accessBean的范围是什么?如果它比应用程序范围小,我相信该函数将无法运行,因为JSF找不到bean。

尽管如此,这不是处理会话到期的推荐方法。如果是首选,请参阅BalusC's method