Jsf datagrid Primefaces中的分页
我正试图将一个参数传递的属于Marca(品牌)的产品放入数据网格 但是当我改变页面时,它不会进行相对分页,而是显示一个空页面 这是标准输出的一部分: 14:43:49805信息[stdout](默认任务-1)其中 14:43:49805信息[stdout](默认任务-1)prodotto0\u0.marca\u idmarca= 14:43:49805信息[stdout](默认任务-1)和prodotto0_u.Category_uidcategory=category1_uu.idcategory 我不明白为什么 我希望有人能解释我做错了什么Jsf datagrid Primefaces中的分页,jsf,primefaces,Jsf,Primefaces,我正试图将一个参数传递的属于Marca(品牌)的产品放入数据网格 但是当我改变页面时,它不会进行相对分页,而是显示一个空页面 这是标准输出的一部分: 14:43:49805信息[stdout](默认任务-1)其中 14:43:49805信息[stdout](默认任务-1)prodotto0\u0.marca\u idmarca= 14:43:49805信息[stdout](默认任务-1)和prodotto0_u.Category_uidcategory=category1_uu.idcatego
<ui:define name="content">
<c:set var="brandid" value="#{marcaController.findbyId()}" scope="request"/>
<div class="product card">
<h:form id="form">
<p:dataGrid var="product" value="#{prodottoController.finbyMarca(brandid.idmarca)}}" multiViewState="true" columns="3" layout="grid"
rows="12" paginator="true" id="cards"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="6,12,16">
<div class="product-grid-item card" style="margin-bottom: 0">
<div class="product-grid-item-top">
<div>
<i class="pi pi-tag product-category-icon"/>
</div>
</div>
<div class="product-grid-item-content">
<h:graphicImage value="#{product.immagine}" style="width:240px;height:260px" />
<div class="product-name">#{product.nome}</div>
<div class="product-description">#{product.descrizione}</div>
</div>
<div class="product-grid-item-bottom">
<h:outputText value="#{product.prezzo}" styleClass="product-priceline">
<f:convertNumber currencySymbol="€" type="currency"/>
</h:outputText>
</div>
</div>
</p:dataGrid>
</h:form>
</div>
</ui:define>
在生产控制器中
public Marca findbyId(){
Integer id = extractId("brandid");
return marcaDao.findById(id);
}
public Integer extractId(String idVar) {
HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance()
.getExternalContext()
.getRequest();
String brandId = request.getParameter(idVar);
if(brandId==null) { return marcaDao.listAll(1,2).get(0).getIdmarca();}
return Integer.parseInt(brandId);
}
@EJB
private ProdottoDao ejbProdotto;
public List<Prodotto> finbyMarca(Integer idMarca){
return ejbProdotto.findByMarca(idMarca);
}
@EJB
私人生产商ejbProdotto;
公共列表finbyMarca(整数idMarca){
返回ejbProdotto.findByMarca(idMarca);
}
在普罗多托
public List<Prodotto> findByMarca(Integer idMarca){
TypedQuery <Prodotto>listProductByMarca=em.createQuery("SELECT DISTINCT p FROM Prodotto p LEFT JOIN FETCH p.category t WHERE p.marca.idmarca =:idMarca AND p.category.idcategory=t.idcategory", Prodotto.class);
listMarca.setParameter("idMarca", idMarca);
return listProductByMarca.getResultList();
}
公共列表findByMarca(整数idMarca){
TypedQuery listProductByMarca=em.createQuery(“从Prodotto p中选择不同的p左连接获取p.category t,其中p.marca.idmarca=:idmarca和p.category.idcategory=t.idcategory”,Prodotto.class);
setParameter(“idMarca”,idMarca);
返回listProductByMarca.getResultList();
}