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

标签 jsf servlet-filters

里面一个

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

我想使用
FacesContext.getCurrentInstance().getExternalContext().getSession(false);

但我意识到 FacesContext.getCurrentInstance()返回 null .我知道我可以使用 ((HttpServletRequest) req).getSession(false) 获得 session 相反,但我的具体问题是:为什么面孔上下文 nulldoFilter()方法?

我正在使用 MyFaces 1.1。

最佳答案

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

但。 BalusC 概述了一些步骤,让您在处理生命周期之外获得对象 here . :)

关于jsf - FacesContext#getCurrentInstance() 在 Filter#doFilter() 中返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14394489/

相关文章:

ajax - 如何使用 PrimeFaces 消息组件堆叠消息?

java - 请求参数在我的servlet中被修改

java - @WebFilter 排除 url 模式

java - 修改Http响应

Java Servlet : How to repeat an HTTP request?

java - JSF 将 EL 表达式显示为纯文本而不是计算值

JSF2 - javax.el.PropertyNotFoundException。不使用方法

java - 如何使 primefaces inputTextArea 适合文本?

javascript - 如何将 javascript 验证应用于 jsf primefaces 中所有动态生成的输入文本区域

spring-boot - 在 Filter 中识别对 Spring Boot Actuator 端点的请求