根据以下问题的接受答案: FacesException: DataModel must implement org.primefaces.model.SelectableDataModel when selection is enabled需要实现SelectableDataModel或将rowKey属性添加到dataTable以避免该异常。无论如何我只是添加了rowKey属性,你可以看到并且错误仍在发生,希望有人能告诉我原因。
这是我的dataTable:
<p:dataTable var="item" rowKey="#{item.id}" style="margin-top:5px" emptyMessage="Nenhum registro encontrado"
value="#{controller.entidade.ecfs}" rows="10" selectionMode="single"
paginator="#{ecfController.showPaginator()}" paginatorPosition="bottom">
<p:column headerText="Nº Série">
<p:outputLabel value="#{item.numeroSerie}"/>
</p:column>
<p:column headerText="Modulo">
<p:outputLabel value="#{item.modulo}"/>
</p:column>
<p:column headerText="Modelo">
<p:outputLabel value="#{item.modelo}"/>
</p:column>
<p:column headerText="GT Inicial">
<p:outputLabel value="#{item.gtInicial}"/>
</p:column>
</p:dataTable>
答案 0 :(得分:1)
我发现使用rowKey属性你必须确保基于rowKey的单一性,另一点是如果你尝试插入一个rowKey属性为null的新对象,它也不会工作。