Primefaces 4.0中的数据表选择行无效

时间:2013-11-19 12:58:08

标签: jsf-2 primefaces

我正在使用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但仍然没有工作。

请帮我解决这个错误。

谢谢..

0 个答案:

没有答案