2
我将一条消息从servlet过滤器返回到Facelets页面。为了将消息从servlet过滤器传输到Facelets页面,我使用了一个会话变量。消息显示后,我想删除会话变量。这可以如何实现? 另外还有一种将数据从servlet传递给Facelets的替代方法?打开Facelets页面时删除会话属性页面
我将一条消息从servlet过滤器返回到Facelets页面。为了将消息从servlet过滤器传输到Facelets页面,我使用了一个会话变量。消息显示后,我想删除会话变量。这可以如何实现? 另外还有一种将数据从servlet传递给Facelets的替代方法?打开Facelets页面时删除会话属性页面
在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");
}
}
感谢BaluC ..这个工作对我来说罚款 – 2012-07-09 07:52:59