简体   繁体   English

无法过滤Primefaces数据表

[英]Can't filtering Primefaces datatable

I have a dataTable with dynamic Columns. 我有一个带有动态列的dataTable。

So I use primefaces 5.3 and jsf 2.2 所以我用了primefaces 5.3和jsf 2.2

Here is code : 这是代码:

<h:form id="form1">
    <p:dataTable var="etudiant" widgetVar="etdTable" paginator="true" rows="10"
    rowsPerPageTemplate="5,10,15" value="#{etudiantController.etudiants}"
    lazy="false" emptyMessage="Aucune etudiant trouvé"
    filteredValue="#{etudiantController.filteredEtudiants}">

       <p:column filterBy="#{etudiant.nomEtudiant}" filterMatchMode="exact">
            <f:facet name="header">
                <h:outputText value="Nom" />
            </f:facet>
            <h:outputText value="#{etudiant.nomEtudiant}" />
      </p:column>
      [...]

Bean : 豆角,扁豆 :

private List<Etudiant> etudiants;
private List<Etudiant> filteredEtudiants;

public List<Etudiant> getEtudiants() {
    return etudiantService.getAllEtudiants();
}

public List<Etudiant> getFilteredEtudiants() {
    return this.filteredEtudiants;
}

public void setFilteredEtudiants(List<Etudiant> filteredEtudiants) {
    this.filteredEtudiants = filteredEtudiants;
}

getAllEtudiants() load all students. getAllEtudiants()加载所有学生。

Exception : 例外情况:

java.lang.NullPointerException
at org.primefaces.component.datatable.feature.FilterFeature.filter(FilterFeature.java:150)
at org.primefaces.component.datatable.feature.FilterFeature.encode(FilterFeature.java:117)
at org.primefaces.component.datatable.DataTableRenderer.encodeEnd(DataTableRenderer.java:78)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:924)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1863) [...]
java.lang.IllegalStateException: CDATA tags may not nest
at com.sun.faces.renderkit.html_basic.HtmlResponseWriter.startCDATA(HtmlResponseWriter.java:681) at javax.faces.context.ResponseWriterWrapper.startCDATA(ResponseWriterWrapper.java:179)[...]

something is wrong here?? 这里不对劲??

I'm ot sure but did you try to inicialize the list? 我确定,但是您是否尝试将列表初始化?

try this: 尝试这个:

private List<Etudiant> filteredEtudiants = new ArrayList<>();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM