JSF2 + Primefaces : DataTable chargement paresseux problème
Je suppose, mon code java est bon, mais les dossiers ne sont pas visibles sur la dataTable.
Veuillez vérifier le code ci-dessous. je ne sais pas où j'ai fait une erreur.
.xhtml
<p:dataTable value="#{userDetailList.userDataList}" var="user" rows="5"
paginator="true" lazy="true"
paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink}
{CurrentPageReport} {NextPageLink} {LastPageLink}">
<p:column headerText="No">
<h:outputText value="#{user.id}"></h:outputText>
</p:column>
<p:column headerText="User Name">
<h:outputText value="#{user.userName}"></h:outputText>
</p:column>
</p:dataTable>
.java
@PostConstruct
public void init(){
//+getter , setter
userDataList = new LazyDataModel<UserDetail>(){
private static final long serialVersionUID = 1L;
@Override
public List<UserDetail> load(int first, int pageSize, String sortField,
SortOrder sortOrder, Map<String, String> filters) {
return lazyDataModelCom.getResultList(first, pageSize, sortField, sortOrder, filters);
}
};
}
getResultList
public List<UserDetail> getResultList(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, String> filters) {
Session session = HibernateUtils.getsession();
Criteria criteria = session.createCriteria(UserDetail.class);
criteria.addOrder(Order.asc("id"));
for (Map.Entry<String, String> entry : filters.entrySet()) {
if (entry.getValue() != null) {
criteria.add(Restrictions.ilike("id",
"%" + entry.getValue() + "%")); }
}
criteria.setMaxResults(pageSize);
criteria.setFirstResult(first);
return criteria.list();
}
getResultList méthode renvoie une valeur correcte, je le déboguer.
je pense que le problème est dans userDataList.
- est UserDataList et votre managedBean sérialisable ?
Vous devez vous connecter pour publier un commentaire.
Votre
LazyDataModel
mise en œuvre n'est pas de mise rowCount. Vous devriez faire quelque chose comme:Faire attention à ce que
rowCount
est alimenté avec le nombre de lignes avant la pagination mais après de filtrage.Voir cette réponse contenant un exemple de travail (avec la seule différence qu'il utilise JPA Critères de l'API au lieu de Hibernate Critères):