2

サーブレット フィルターから Facelets ページにメッセージを返しています。メッセージをサーブレット フィルターから Facelets ページに転送するために、セッション変数を使用しています。メッセージが表示された後、セッション変数を削除したいと思います。これはどのように達成できますか?また、サーブレットから Facelets にデータを渡す別の方法はありますか?

4

1 に答える 1

5

のアフターフェーズ中に取り外しRENDER_RESPONSEます。これに使用できます<f:view afterPhase>

<f:view afterPhase="#{bean.removeSessionAttributeAfterRender}">

public void removeSessionAttributeAfterRender(PhaseEvent event) {
    if (event.getPhaseId() == PhaseId.RENDER_RESPONSE) {
        FacesContext.getCurrentInstance().getExternalContext()
            .getSessionMap().remove("sessionAttributeName");
    }
}
于 2012-07-06T12:43:48.600 に答える