0

RequestContext rq = RequestContext.getCurrentInstance()为什么从不同的上下文调用而不是FacesContext抛出一个NullPointerException

我无法执行以下操作:

RequestContext rq = RequestContext.getCurrentInstance() //NPE is thrown
if (rq != null) {
..
}

我想做的是在 a 中检索一个 beanWebFilter并调用一个方法。此方法使用上述代码段;所以它抛出NullPointerException

感谢您的帮助。

4

1 回答 1

2

Instance ofRequestContext被保存为 中的一个属性FacesContext,所以当没有的时候FacesContext你会有 NPE。这是告诉您如何RequestContext获得的代码,并且将被清除:

return (RequestContext) FacesContext.getCurrentInstance().getAttributes().get(Constants.REQUEST_CONTEXT_ATTR);

在恢复视图阶段之后,在 Primefaces中创建RequestContext并将其保存为FacesContext属性,因此它在您的过滤器中不存在。PhaseListener

于 2013-03-15T09:10:44.230 回答