用来制定模块和JPS的,所以有一个左右两难的困境。

任务:显示 <h:dataTable> 只有当列表并不是空的

是否有可能提供 <c:if> 标签对JSF的页面?

有帮助吗?

解决方案

是的,你可以添加JSTL标签在你的JSF页。然而,在你的情况,你可以简单地做到以下几点:

<h:dataTable value="#{myBean.list}"... rendered="#{myBean.displayTable}">
    ...
</h:dataTable>

用以下方法 myBean:

public boolean isDisplayTable() {
    return list != null && list.size() > 0;
}

你也可以尝试,(不知道这是否会的工作):

<!-- Idea from Colin Gislason -->
<h:dataTable value="#{myBean.list}"... rendered="#{not empty myBean.list}">
    ...
</h:dataTable>

<h:dataTable value="#{myBean.list}"... rendered="#{not myBean.list.empty}">
    ...
</h:dataTable>

注意,你可以使用 ! 而不是的 not 关键在EL表现形式(参看指导 在这里, 关于EL表情),其结果 rendered="#{!empty myBean.list}".

其他提示

<c:if>(和其他JSTL标记)可以在JSF在大多数情况下被使用。像<h:dataTable> - 但是,不能在里面进行迭代的集合组件使用。但是,在你的情况,你想要的rendered之外,因此是可能的。然而,如romaintaz指出,最好使用<=>属性。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top