0

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にaを追加します<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>アクティビティ セッションと見なされることです。ユーザーに通知する別の方法がありますか?

4

1 に答える 1

0

accessBean のスコープは何ですか? それがアプリケーション スコープよりも小さい場合、JSF が Bean を見つけられないため、関数の実行に失敗すると思います。

ただし、これはセッションの有効期限を処理するための推奨される方法ではありません。推奨される方法については、 BalusC のメソッドを参照してください。

于 2013-09-27T20:43:27.173 に答える