FacesContext # getCurrentInstance() возвращает null в Filter # doFilter()
Внутри
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
Я хотел получить сеанс, используя
FacesContext.getCurrentInstance().getExternalContext().getSession(false);
Но я понял, что FacesContext.getCurrentInstance()
возвращает null
. Я знаю, что я могу получить сеанс, используя ((HttpServletRequest) req).getSession(false)
вместо этого, но мой конкретный вопрос: почему интерфейс face null
в методе doFilter()
?
Я использую MyFaces 1.1.
Ответы
Ответ 1
FacesContext
, поскольку объект привязан непосредственно к жизненному циклу обработки запросов JSF и, как результат, доступен только во время стандартного процесса запроса-ответа JSF (с помощью пользователя). Сам фактический объект хранится в потоке, который выполняется во время обработки запроса JSF по отношению к ManagedBean.
Но. BalusC изложил некоторые шаги, чтобы получить доступ к объекту за пределами жизненного цикла здесь.:)