【发布时间】:2011-05-19 21:57:48
【问题描述】:
编辑:没关系!
我正在将我的项目从带有 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,则导致 NullPointerException,而我的项目的 JSF 1.2 版本中没有。对于这些情况,另一种方法是使用 c:if(而不是 h:panelGroup rendering="..."),但这有其自身的问题。我做错了什么吗?有一些配置吗?谢谢!
【问题讨论】:
-
在特定的代码示例中,它不应该导致 NPE。请张贴实际代码。或者如果确实如此,那么它是 EL 中的一个错误。 EL 旨在实现 nullsafe。然后,您应该提及您正在使用哪个 EL 实现(servletcontainer)。
-
你是对的;我发现了一个不相关的错误导致了这种情况。谢谢!
标签: java jsf jsf-2 facelets nullpointerexception