2010-12-03 74 views
1

編輯:沒關係!如何停止在非呈現的JSF組件中評估EL表達式?

我正在使用Facelets將我的項目從JSF 1.2與Facelets切換到JSF 2。看起來,在JSF 2中,未呈現的組件中的EL表達式將被評估。 JSF 1.2中似乎沒有這種情況。所以,你得到這樣的問題:

<h:panelGroup rendered="#{not empty myBean.myPojo}"> 
    <h:outputText value="#{myBean.myPojo.pojoProperty}" /> 
</h:panelGroup> 

導致一個NullPointerException如果myBean.myPojo爲空,當它在JSF 1.2版本,我的項目沒有。另一種方法是使用c:如果對於這些情況(而不是h:panelGroup rendered =「...」),但是它帶有它自己的問題。難道還有別的我做錯了嗎?有這個配置嗎?謝謝!

+1

在特定的代碼示例中,它不應該導致NPE。請發佈*實際*代碼。或者如果確實如此,那麼這是EL中的一個錯誤。 EL就是默默無聞。然後你應該提及你正在使用哪個EL實現(servletcontainer)。 – BalusC 2010-12-03 18:29:23

回答

1

如果這就是這一切,那麼這看起來像是EL實現中的一個bug。我建議檢查是否有新版本,如果此問題先前已被報告過,如果沒有 - 報告! :)