FacesContext#getCurrentInstance()在Filter#doFilter()中返回null

时间:2013-01-18 07:47:02

标签: jsf servlet-filters

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

我想使用

进行会话
FacesContext.getCurrentInstance().getExternalContext().getSession(false);

但我意识到FacesContext.getCurrentInstance()会返回null。我知道我可以使用((HttpServletRequest) req).getSession(false)代替会话,但我的具体问题是:为什么null方法中的人脸doFilter()

我正在使用MyFaces 1.1。

1 个答案:

答案 0 :(得分:13)

FacesContext作为对象直接绑定到JSF请求处理生命周期,因此只有在标准JSF(用户驱动)请求 - 响应过程中才可用。实际对象本身存储在一个线程中,该线程在处理JSF请求期间运行,与ManagedBean相对。

但是。 BalusC已经概述了一些步骤,以便在处理生命周期之外的对象上here。 :)