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