【问题标题】:Lazy loading in primefaces componentprimefaces 组件中的延迟加载
【发布时间】:2014-12-15 11:48:07
【问题描述】:

我的实体延迟加载到我的 dataScroller 时遇到问题。

这是来自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 个用户,但它们与以前的用户相同(相同的 id 名称等) 我试图调试它。一切似乎都很好。加载函数中返回的数据包含正确的数据......有人遇到同样的问题还是我在某处错了?

【问题讨论】:

    标签: java jsf primefaces


    【解决方案1】:

    不应该这样

    userService.getUsersFromTo(0 , first + pageSize); 
    

    宁可

    userService.getUsersFromTo(first , first + pageSize); 
    

    在第一种情况下,您的前十个用户将始终相同,但每一步返回的用户数会增加,这可能是您的问题的原因

    【讨论】:

    • 是的,这解决了重复性问题,但还有另一个问题是下一个数据的按钮在第一次调用后消失了......但部分你回答了我的问题。谢谢
    猜你喜欢
    • 1970-01-01
    • 2012-08-07
    • 1970-01-01
    • 2015-09-18
    • 2014-01-19
    • 1970-01-01
    • 1970-01-01
    • 2020-10-17
    • 2014-06-04
    相关资源
    最近更新 更多