我正在使用primefaces 3.2,我在JSF中使用线程时遇到问题。我无法从该线程获得对当前FacesContext
的引用。
如何在该线程内获取对该上下文的引用。
答案 0 :(得分:1)
当前FacesContext
存储在静态线程局部变量中。 Servlet容器使用特定的线程来处理到达容器的每个请求/响应,因此将FacesContext
存储在线程局部变量中可确保每个请求处理生命周期只有一个实例,这应该是它应该如何
当您尝试从另一个线程获取对FacesContext
的引用时,会发生什么,因为它存储为线程局部变量,并且由于您的新线程尚未初始化它:您获得了{ {1}}参考。
如果你想要/需要另一个新线程中的faces上下文,唯一可行的方法是通过null
创建一个新的上下文实例。但是,您需要引用FacesContextFactory
,HttpServletRequest
和HttpServletResponse
来实例化它(我猜您将无法从单独的对象获取对这些对象的有效引用线程)。