如果JSF条件为真,如何显示html标签?

fed*_*der 1 jsf-2

<span>Lorem Ipsum</span>如果backing-bean值不为空,我想显示.

<h:outputText rendered="#{not empty pubController.location}">
    <span>Lorem Ipsum</span>
</h:outputText>
Run Code Online (Sandbox Code Playgroud)

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

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

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

Lau*_*ntG 5

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

如果此元素具有子元素,则默认情况下必须忽略它们.实现可以提供允许此元素呈现其子元素的配置选项.

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

<h:outputText value="Lorem Ipsum" rendered="#{not empty pubController.location}"/>
Run Code Online (Sandbox Code Playgroud)

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

<h:panelGroup rendered="#{not empty pubController.location}">
    <span>Lorem Ipsum</span>
</h:panelGroup>
Run Code Online (Sandbox Code Playgroud)

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