题
用来制定模块和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指出,最好使用<=>属性。
不隶属于 StackOverflow