我正在使用JSF 2.0和Primefaces 4.0以及JBoss 5.0构建应用程序。我想选择一行数据表,为此我使用了以下代码
<p:dataTable var="valuesTable"
value="#{userBean.groupResultList}" paginator="false"
id="valuesTable" resizableColumns="true"
rowKey="#{valuesTable.groupName}" selection="#{userBean.objSelectedGroupRow}"
selectionMode="single"
rendered="#{not empty userBean.groupResultList}">
<p:column id="grp">
GroupReasultModel
public class GroupResultModel {
private String groupName;
private double tkValue;
private double pmValue;
private double growthValue;
private double dkValue;
private double maValue;
private double nwValue;
private double niValue;
}
的UserBean
public class UserBean {
private List<GroupResultModel> groupResultList;
private GroupResultModel objSelectedGroupRow;
}
当我运行应用程序时,我收到以下错误
javax.servlet.ServletException: DataModel must implement org.primefaces.model.SelectableDataModel when selection is enabled.
javax.faces.webapp.FacesServlet.service(FacesServlet.java:321)
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:357)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
root cause
javax.faces.FacesException: DataModel must implement org.primefaces.model.SelectableDataModel when selection is enabled.
org.primefaces.component.datatable.DataTable.getRowKeyFromModel(DataTable.java:964)
org.primefaces.component.datatable.DataTableRenderer.encodeRow(DataTableRenderer.java:746)
org.primefaces.component.datatable.DataTableRenderer.encodeTbody(DataTableRenderer.java:658)
org.primefaces.component.datatable.DataTableRenderer.encodeRegularTable(DataTableRenderer.java:244)
org.primefaces.component.datatable.DataTableRenderer.encodeMarkup(DataTableRenderer.java:206)
org.primefaces.component.datatable.DataTableRenderer.encodeEnd(DataTableRenderer.java:81)
我有一个添加rowKey的解决方案。我已经添加了rowKey但仍然没有工作。
请帮我解决这个错误。
谢谢..