我正在使用primefaces(我使用PF 3.5)datatable,我想用我的db中的数据填充表格。
<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();
}
答案 0 :(得分:2)
我想问题是你以错误的方式设置值。
value="#{yourBean.listOfCars}"
值应该是可迭代的列表类型。
查看展示:http://www.primefaces.org/showcase/ui/datatableBasic.jsf;jsessionid=1c0z4mgiaz5531cqf4v78m79iy
答案 1 :(得分:2)
您可以使用@Juvanis解决方案,或者在您选择的时候使用:
<p:dataTable var="product" value="#{productservice.getListOrderedByDate()}">
而不是:
<p:dataTable var="product" value="#{productservice.getListOrderedByDate}">
答案 2 :(得分:0)
您确定值属性是否正确?
在我看来应该是
value="#{productservice.listOrderedByDate}
而不是
value="#{productservice.getListOrderedByDate}"