里面一个
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
我想使用
FacesContext.getCurrentInstance().getExternalContext().getSession(false);
但我意识到
FacesContext.getCurrentInstance()
返回 null
.我知道我可以使用 ((HttpServletRequest) req).getSession(false)
获得 session 相反,但我的具体问题是:为什么面孔上下文 null
在 doFilter()
方法?我正在使用 MyFaces 1.1。
最佳答案
FacesContext
因为对象直接与 JSF 请求处理生命周期相关联,因此仅在标准 JSF(用户驱动)请求-响应过程中可用。实际对象本身存储在一个线程中,该线程在处理 JSF 请求期间运行,相对于 ManagedBean。
但。 BalusC 概述了一些步骤,让您在处理生命周期之外获得对象 here . :)
关于jsf - FacesContext#getCurrentInstance() 在 Filter#doFilter() 中返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14394489/