jsf - datagrid Primefaces中的分页
问题描述
我试图将属于由参数传递的 Marca(Brand) 的产品放入数据网格,但是当我更改页面时,它不进行相对分页,它显示一个空页面
这是标准输出的一部分:
14:43:49,805 INFO [stdout](默认任务 1)在哪里
14:43:49,805 INFO [stdout](默认任务 1)prodotto0_.marca_idmarca=?
14:43:49,805 INFO [stdout](默认任务 1)和 prodotto0_.Category_idcategory=category1_.idcategory
我不明白为什么我希望有人解释我做错了什么
<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>
在 MarcaController
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);
}
在 ProdottoController
@EJB
private ProdottoDao ejbProdotto;
public List<Prodotto> finbyMarca(Integer idMarca){
return ejbProdotto.findByMarca(idMarca);
}
在 ProdottoDao
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();
}
解决方案
推荐阅读
- rabbitmq - 一个 SCDF 源,2 个处理器,但每个项目只有 1 个进程
- django - 姜戈。楷模。在它的方法中创建同一个类的另一个实例
- javascript - Puppeteer 错误找不到选择器的节点
- c - 使用位运算符时出现分段错误
- html - 为什么这些包含图像的无序列表项不显示在水平行中?
- jquery - 附加到链接并使用 jquery 添加 css 类
- java - 运行spring服务器时出现JRebel-JVMTI错误
- jenkins - Jenkins Job DSL 动态并行步骤
- react-native - 负载可扩展组件最小化
- rest - 无法使用 GraphDB REST 接口执行 SPARQL 选择查询