首页 > 解决方案 > 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="€&quot; 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();



}

标签: jsfprimefaces

解决方案


推荐阅读