在
内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。
答案 0 :(得分:13)
FacesContext
作为对象直接绑定到JSF请求处理生命周期,因此只有在标准JSF(用户驱动)请求 - 响应过程中才可用。实际对象本身存储在一个线程中,该线程在处理JSF请求期间运行,与ManagedBean相对。
但是。 BalusC已经概述了一些步骤,以便在处理生命周期之外的对象上here。 :)