使用 JSF1.2,如果我的数据表绑定(bind)没有返回任何行,我想显示一条这样的消息。
我该怎么做?
另外,如果表格是空的,如何完全隐藏表格?
谢谢。
最佳答案
利用 rendered
属性。它接受一个 boolean 表达式。您可以借助 EL 的 empty
关键字在表达式内评估数据表的值。如果它返回 false
,整个组件(及其子组件)将不会被渲染。
<h:outputText value="Table is empty!" rendered="#{empty bean.list}" />
<h:dataTable value="#{bean.list}" rendered="#{not empty bean.list}">
...
</h:dataTable>
对于您感兴趣的情况,以下是如何利用 rendered
属性中的 EL 功能的其他基本示例:
<h:someComponent rendered="#{bean.booleanValue}" />
<h:someComponent rendered="#{bean.intValue gt 10}" />
<h:someComponent rendered="#{bean.objectValue eq null}" />
<h:someComponent rendered="#{bean.stringValue ne 'someValue'}" />
<h:someComponent rendered="#{not empty bean.collectionValue}" />
<h:someComponent rendered="#{not bean.booleanValue and bean.intValue ne 0}" />
<h:someComponent rendered="#{bean.enumValue eq 'ONE' or bean.enumValue eq 'TWO'}" />
另见:
关于java - 如果 jsf 数据表为空,如何显示消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1985718/