2012-07-06 48 views
2

我將一條消息從servlet過濾器返回到Facelets頁面。爲了將消息從servlet過濾器傳輸到Facelets頁面,我使用了一個會話變量。消息顯示後,我想刪除會話變量。這可以如何實現? 另外還有一種將數據從servlet傳遞給Facelets的替代方法?打開Facelets頁面時刪除會話屬性頁面

回答

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"); 
    } 
} 
+0

感謝BaluC ..這個工作對我來說罰款 – 2012-07-09 07:52:59