gpt4 book ai didi

java - FacesContext 中的 getExternalContext 中的 NullpointerException

转载 作者:行者123 更新时间:2023-11-29 09:56:53 24 4
gpt4 key购买 nike

我尝试从 FacesContext 获取外部上下文,如下所示并得到 NullPointerException:

ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();

什么可能导致问题?

最佳答案

只有在 FacesContext#getCurrentInstance() 时才可能引起返回 null。任何访问或调用 null 引用的尝试都将导致 NullPointerException。另见 its javadoc :

Thrown when an application attempts to use null in a case where an object is required. These include:

  • Calling the instance method of a null object.
  • Accessing or modifying the field of a null object.
  • Taking the length of null as if it were an array.
  • Accessing or modifying the slots of null as if it were an array.
  • Throwing null as if it were a Throwable value.

Applications should throw instances of this class to indicate other illegal uses of the null object.

FacesContext#getCurrentInstance() 返回 null 只能在该行代码在 JSF 中执行时引起上下文,即当代码在由 FacesServlet 提供服务的 HTTP 请求期间运行时,他负责创建 FacesContext作为 ThreadLocal。例如,在普通 servlet、servlet 过滤器或 servlet 监听器或任何其他在运行 FacesServlet 的 HTTP 请求期间未执行的代码中。

如何正确解决它取决于问题中不清楚的功能需求。通常,您要么确保 HTTP 请求通过 FacesServlet 运行,要么通过更适合当前运行代码的上下文的替代方式来访问您正在寻找的信息.

关于java - FacesContext 中的 getExternalContext 中的 NullpointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8300439/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com