2013-01-18 28 views
10

裏面一個FacesContext的#getCurrentInstance()返回在過濾器#的doFilter空()

public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) 

我想用

FacesContext.getCurrentInstance().getExternalContext().getSession(false); 

獲取會話,但我意識到,FacesContext.getCurrentInstance()回報null。我知道我可以用((HttpServletRequest) req).getSession(false)來代替這個會話,但我的具體問題是:爲什麼doFilter()方法中的面部背景null

我正在使用MyFaces 1.1。

回答

12

FacesContext作爲一個對象被直接綁定到JSF請求處理生命週期,其結果是隻適用期間標準JSF(用戶驅動)請求 - 響應過程。實際對象本身存儲在處理JSF請求期間運行的線程中,相對於ManagedBean。

但是。 BalusC已經列出了一些步驟,以便在處理生命週期here之外獲得對象。 :)

+0

謝謝..我想我明白了:) –