JSF2 + Primefaces : DataTable lazy loading Problem
Denke ich, mein java code ist der richtige, aber die Datensätze werden nicht angezeigt auf dataTable.
Bitte überprüfen Sie code unten. ich weiß nicht, wo ich Fehler gemacht.
.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 Methode zurück, einen richtigen Wert hat, ich Debuggen.
ich denke, dass problem ist in userDataList.
ist UserDataList und Ihre managedBean serialisierbar ?
InformationsquelleAutor Jimit Tank | 2013-05-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre
LazyDataModel
Umsetzung ist nicht die Einstellung der Zeilenanzahl. Sollten Sie so etwas tun:Achten, dass
rowCount
wird gespeist mit der Anzahl der Zeilen vor Paginierung aber nach filtern.Sehen diese Antwort mit einer funktionierenden Beispiel (nur mit dem Unterschied, dass es verwendet die JPA Criteria API von Hibernate-Kriterien):
InformationsquelleAutor perissf