0

スローRequestContext rq = RequestContext.getCurrentInstance()とは異なるコンテキストから呼び出すのはなぜですか?FacesContextNullPointerException

私は次のようなことをすることができません:

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

私がやろうとしているのは、a内のBeanを取得しWebFilter、メソッドを呼び出すことです。このメソッドは上記のスニペットを使用します。だからそれは投げNullPointerExceptionます。

ご協力ありがとうございました。

4

1 に答える 1

2

のインスタンスは にRequestContextアトリビュートとして保存されるFacesContextため、存在しないFacesContext場合は NPE になります。RequestContextがどのように取得され、クリアされるかを示すコードは次のとおりです。

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

属性としての作成RequestContextと保存は、 Restore view phaseの後に Primefaces で行われるため、フィルターには存在しません。FacesContextPhaseListener

于 2013-03-15T09:10:44.230 に答える