2

我正在从 servlet 过滤器向 Facelets 页面返回一条消息。要将消息从 servlet 过滤器传输到 Facelets 页面,我使用了会话变量。显示消息后,我想删除会话变量。如何做到这一点?还有另一种将数据从 servlet 传递到 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 回答