2010-12-03 58 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。我建议检查是否有新版本,如果此问题先前已被报告过,如果没有 - 报告! :)