0

我正在使用 primefaces 3.2,在 JSF 中使用线程时遇到问题。我无法FacesContext从该线程获得对当前的引用。

如何在该线程中获取对该上下文的引用。

4

1 回答 1

1

当前FacesContext存储在静态线程局部变量中。Servlet 容器使用特定线程来处理到达容器的每个请求/响应,因此,将其存储FacesContext在线程局部变量中可确保每个请求处理生命周期只有一个实例,这就是它应该的样子。

当您尝试FacesContext从另一个线程获取对 a 的引用时,会发生什么情况,因为它被存储为线程局部变量,并且由于您的新线程尚未初始化它:您获得了一个null引用。

如果您想要/需要另一个新线程中的 faces 上下文,唯一可能的方法是通过FacesContextFactory. 但是,您将需要对 a HttpServletRequest、 aHttpServletResponse和 a的引用来ServletContext实例化它(我猜您将无法从单独的线程中获取对这些对象的有效引用)。

于 2012-09-04T12:57:27.167 回答