如何阻止EL表达式在非呈现的JSF组件中进行求值?

时间:2010-12-03 18:25:08

标签: java jsf jsf-2 facelets nullpointerexception

编辑:没关系!

我正在将项目从使用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>

如果myBean.myPojo为null,则在我的项目的JSF 1.2版本中没有时会导致NullPointerException。另一种方法是使用c:if for these cases(而不是h:panelGroup rendered =“...”),但这有其自身的问题。可能还有别的我做错了吗?这有什么配置吗?谢谢!

1 个答案:

答案 0 :(得分:1)

如果这就是全部,那么这似乎是基础EL实现中的一个错误。我建议检查是否有新版本,如果此问题已经报告过,如果没有,请报告! :)