【问题标题】:primefaces lazy loading is not implementedprimefaces 延迟加载未实现
【发布时间】:2013-06-03 08:14:49
【问题描述】:

我收到“java.lang.UnsupportedOperationException:未实现延迟加载”。错误。当我对项目进行调试时,lazyModel的构造函数正在工作,但没有执行加载方法。

我的 xhtml 页面;

<p:dataTable id="envelopelistid" var="envelope"
                     value="#{incomingEnvelopeListController.lazyEnvelopeDataModel}"
                     selection="#{incomingEnvelopeListController.selectedEnvelope}" selectionMode="single"
                     rowKey="#{envelope.instanceIdentifier}"
                     sortMode="multiple"
                     lazy="true"
                     style="min-height: 300px"
                     paginator="true"
                     paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"
                     rowsPerPageTemplate="5,10,15"
                     rows="10">

我的控制器;

private LazyDataModel<Envelope> lazyEnvelopeDataModel;

public void init(){
...
lazyEnvelopeDataModel = new LazyEnvelopeDataModel(genericService,envelope);
}

我的惰性数据模型;

@Override
public List<Envelope> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, String> filters) {

    if (sortField == null) {
        sortField = "identificationId";
    }

    datasource = genericService.getByTemplate(envelopeModel, first, pageSize, new Order(sortField, Order.convertSortOrder(sortOrder.toString())));
    setRowCount((int) genericService.getCountByTemplate(envelopeModel));
    return datasource;


}

【问题讨论】:

    标签: jsf jsf-2 primefaces


    【解决方案1】:

    LazyDataModel中有2个load方法:

    public List<T> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String,String> filters) {
        throw new UnsupportedOperationException("Lazy loading is not implemented.");
    }
    
    public List<T> load(int first, int pageSize, List<SortMeta> multiSortMeta, Map<String,String> filters) {
        throw new UnsupportedOperationException("Lazy loading is not implemented.");
    }
    

    这是引发错误的地方。您正在使用 multisort,因此您应该覆盖第二个。

    【讨论】:

    • 我刚刚遇到了同样的问题。这些方法不应该是抽象的吗?
    • 我同意。如果没有提供默认实现,请将它们抽象化,以便开发人员知道他们必须自己提供实现。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-07
    • 2015-09-18
    • 2014-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多