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

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

最新更新