У меня проблема с ленивой загрузкой с моего объекта на мой dataScroller.Lazy loading in componentsfaces
Вот основная масса из my.xhtml
<h:form>
<p:dataScroller value="#{userBean.lazyModel}" var="user" chunkSize="10" lazy="true">
<f:facet name="loader">
<p:commandButton type="button" value="More" icon="ui-icon-circle-triangle-s"/>
</f:facet>
<h:panelGrid columns="2" style="width:100%" columnClasses="logo,detail">
<p:outputPanel>
<h:panelGrid columns="2" cellpadding="5">
<h:outputText value="Id:"/>
<h:outputText value="#{user.id}" style="font-weight: bold"/>
<h:outputText value="name:"/>
<h:outputText value="#{user.name}" style="font-weight: bold"/>
</h:panelGrid>
</p:outputPanel>
</h:panelGrid>
</p:dataScroller>
А вот LazyDataModel
спецификации
private LazyDataModel<User> lazyModel;
@PostConstruct
public void init() {
this.lazyModel = new LazyDataModel<User>() {
private static final long serialVersionUID = 1L;
@Override
public List<User> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, Object> filters) {
List<User> data = userService.getUsersFromTo(0 , first + pageSize);
this.setRowCount(data.size());
return data;
}
};
}
public LazyDataModel<User> getLazyModel() {
return lazyModel;
}
Все должно работать так же, как бесконечная прокрутка в Facebook. Но есть проблема. Я получаю 10 пользователей, и после спуска я получаю еще 10 пользователей, но они такие же, как и предыдущие (одинаковые имена и т. Д.). Я попытался отладить его. И все работает нормально. Возвращенные данные в функции загрузки содержат правильные данные ... Кто-нибудь сталкивается с той же проблемой или я где-то ошибаюсь?
Да, это решение проблемы с дублированием, но есть еще одна проблема, что кнопка для следующих данных исчезает после первого вызова ... Но частично вы отвечаете на мой запрос ион. спасибо – Milkmaid