如何显示JSF条件的html标签是真的吗?

时间:2013-08-13 10:25:20

标签: jsf-2

如果支持bean值为 NOT 为空,我想显示<span>Lorem Ipsum</span>

<h:outputText rendered="#{not empty pubController.location}">
    <span>Lorem Ipsum</span>
</h:outputText>

Lorem Ipsum永远不会显示。显然,如果我在我的状态下移除NOT,它也不起作用。

仅供参考:在运行h:outputText之前,我只需打印布尔语句。它打印正是我期望的。对于非空的值,为真。此外,渲染条件也适用于h:form标记,正如我所期望的那样。看起来h:outputText在这种情况下是不合适的,不是吗?

有没有比使用h:outputText更好的方法来做我想做的事情?

1 个答案:

答案 0 :(得分:5)

这不起作用,因为h:outputText不接受documentation中所述的子元素:

  

如果此元素具有子元素,则默认情况下必须忽略它们。   实现可以提供允许这样做的配置选项   元素来渲染它的孩子。

尝试使用以下代码可以解决您的问题:

<h:outputText value="Lorem Ipsum" rendered="#{not empty pubController.location}"/>

请注意,您还可以执行以下操作:

<h:panelGroup rendered="#{not empty pubController.location}">
    <span>Lorem Ipsum</span>
</h:panelGroup>

如果您需要显示比简单span元素更复杂的结构,那将非常有用。