Jsf 数据表标题在页面加载期间可见,即使没有要显示的数据

Jsf 数据表标题在页面加载期间可见,即使没有要显示的数据,jsf,datatable,Jsf,Datatable,我正在使用Spring、JSF和Hibernate开发一个应用程序,遵循中的示例 当我在数据库中填充一些值的情况下运行此代码时,这应该包含datatable头名称以及检索到的所有行。但是当数据库中没有值并且我运行代码时,这不应该显示datatable头名称。只有当从数据库检索到某些值时,才应显示datatable标头名称,而不是在启动期间。如何执行此操作?向托管bean添加一个integer属性,该属性获取列表的大小 private int sizeOfTable; public int ge

我正在使用Spring、JSF和Hibernate开发一个应用程序,遵循中的示例


当我在数据库中填充一些值的情况下运行此代码时,这应该包含datatable头名称以及检索到的所有行。但是当数据库中没有值并且我运行代码时,这不应该显示datatable头名称。只有当从数据库检索到某些值时,才应显示datatable标头名称,而不是在启动期间。如何执行此操作?

向托管bean添加一个
integer
属性,该属性获取列表的大小

private int sizeOfTable;

public int getSizeOfTable()
{
return customerBo.findAllCustomer().size();
}
public int setSizeOfTable(int sizeOfTable(int sizeOfTable)
{
this.sizeOfTable = sizeOfTable;
}
您可以通过
rendered
属性控制数据表

<h:dataTable value="#{customer.getCustomerList()}" var="c" rendered="#{customer.sizeOfTable == 0}"
                styleClass="order-table"
                headerClass="order-table-header"
                rowClasses="order-table-odd-row,order-table-even-row"
            >
您应该相应地编辑“大小”属性

  public int getSizeOfTable()
    {
    return customerList.size();
    }

只需让
rendered
属性检查数据模型是否为

<h:dataTable value="#{customer.customerList}" ... rendered="#{not empty customer.customerList}">

不需要像另一个答案所建议的那样,用不相关的属性来扰乱模型

另见:

非常感谢BalusC提供的链接和erencan提供的宝贵意见。现在一切都好了!!:)
<h:dataTable value="#{customer.customerList}" ... rendered="#{not empty customer.customerList}">