1

我正在使用primefaces(我使用PF 3.5)数据表,我想用我的数据库中的数据填充表。

<p:dataTable id="cars" var="car" value="#{productservice.getListOrderedByDate()}"
    editable="true" editMode="cell" widgetVar="productTable">

我的服务方法如下所示:

public List<Product> getListOrderedByDate() {
    log.trace("Returning list of Products...");
    log.info(productDAO.getProductsOrderedByDate());
    return productDAO.getProductsOrderedByDate();
}

但是,当我在xhtml页面中呈现表格时,我会No records found.回来。

真的很感谢你的回答!!!

更新

   <p:dataTable var="product" value="#{productservice.getListOrderedByDate}"> 

                            <f:facet name="header"> Product  </f:facet>

                            <p:column headerText="id" style="width:15%">
                                <h:outputText value="#{product.id}" />
                            </p:column>

                            <p:column headerText="Object Type" style="width:15%">
                                <h:outputText value="#{product.objectType}" />
                            </p:column>

                            <p:column headerText="Price" style="width:15%">
                                <h:outputText value="#" />
                            </p:column>

                            <p:column headerText="For" style="width:15%">
                                <h:outputText value="#{product.for}" />
                            </p:column>

更新 2

我的方法产品按日期排序:

public List<Product> getProductsOrderedByDate() {
  CriteriaBuilder cb = em.getCriteriaBuilder();
  CriteriaQuery<Product> criteria = cb.createQuery(Product.class);
  Root<Product> product = criteria.from(Product.class);

  criteria.select(product).orderBy(cb.desc(product.get("creationDate")));
  return em.createQuery(criteria).getResultList();
}
4

3 回答 3

2

我想问题是您以错误的方式设置值。

value="#{yourBean.listOfCars}"

value 应该是一个可迭代的列表类型。

查看展示:http ://www.primefaces.org/showcase/ui/datatableBasic.jsf;jsessionid=1c0z4mgiaz5531cqf4v78m79iy

于 2013-04-20T13:15:23.300 回答
2

您可以使用@Juvanis 解决方案,或者在您选择的情况下需要使用:

 <p:dataTable var="product" value="#{productservice.getListOrderedByDate()}">

代替:

 <p:dataTable var="product" value="#{productservice.getListOrderedByDate}">
于 2013-04-20T14:39:27.967 回答
0

您确定 value 属性正确吗?

在我看来应该是

 value="#{productservice.listOrderedByDate}

并不是

value="#{productservice.getListOrderedByDate}"
于 2013-04-20T14:38:16.020 回答