【问题标题】:Primefaces lazy datatable does not recognize method loadPrimefaces 惰性数据表无法识别方法加载
【发布时间】:2021-07-01 17:47:00
【问题描述】:

我在下面有一个 primefaces 数据表:

<p:dataTable id="table_lista_grupos" value="#{grupoClasseBean.gldm}" var="item" 
   widgetVar="lista_grupos" rowKey="#{item.codigo}" paginator="true" rows="10" 
   styleClass="panelGrande" paginatorPosition="bottom" sortMode="multiple" 
   filteredValue="#{grupoClasseBean.listaGruposFiltrados}" rowHover="true" 
   resizeMode="expand" selectionMode="single" lazy="true" rowsPerPageTemplate="10,20,30"
   paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" >

我需要实现一个延迟加载, 我遵循了文档并创建了以下类:

public class GrupoLazyDataModel extends LazyDataModel<Grupo>{
    
    private static final long serialVersionUID = 1L;
    
    private List<Grupo> datasource;
    
    public GrupoLazyDataModel(List<Grupo> datasource) {
        this.datasource = datasource;
        setRowCount(datasource.size());
    }

    @Override
    public List<Grupo> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, Object> filters) {
        return new ArrayList<Grupo>();
    }
}

我在我的 ManagedBean 中调用这个类

@Named
@RequestScoped
public class GrupoClasseBean implements Serializable {
    
    private LazyDataModel<Grupo> gldm;

    @PostConstruct
    public void init() {
        Map<TipoParametro, Object> params = new HashMap<>();
        params.put(TipoParametro.TIPO, tipo);
        listaGrupos = (List<Grupo>) rule.list(0, 100, params);
        gldm = new GrupoLazyDataModel(listaGrupos);        
    }
}

但是当我执行我的软件时,我收到错误消息:

 Receiver class br.gov.sp.sefaz.siafem.cm.ui.grpcls.GrupoLazyDataModel does not define or inherit an implementation of the resolved method abstract load(IILjava/util/Map;Ljava/util/Map;)Ljava/util/List; of abstract class org.primefaces.model.LazyDataModel.

我的环境是primefaces 5.3,tomcat 9,jdk 1.8,netbeans 12.2,数据库derby

【问题讨论】:

  • 您确定您的代码编译和部署没有错误吗?您是否使用正在运行的相同 jdk 编译您​​的项目?
  • 您的 bean 必须至少为 @ViewScoped 才能让惰性工作。

标签: primefaces


【解决方案1】:

我解决了这个问题,将 primefaces 版本从 5.3 更新到 10.0

【讨论】:

    猜你喜欢
    • 2013-05-08
    • 2012-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-28
    • 1970-01-01
    • 2019-11-14
    • 2015-01-10
    相关资源
    最近更新 更多