у меня есть следующий код:
<h:form enctype="multipart/form-data">
<p:dataTable
var="report"
value="#{businessDomain.value.reportEntities}"
style="padding:0px; margin:0px; border:0px;"
filteredValue="#{businessDomain.value.filteredReportEntities}"
scrollable="true" scrollHeight="200" paginator="false" rows="999"
rowKey="#{report.id}" rowIndexVar="rowIndex" selection="#{reportController.entity}" selectionMode="single">
<p:ajax event="rowSelect" listener="#{reportController.onRowSelect}" update="@(form)"/>
<p:column name="name" filterBy="#{report.name}" filterMatchMode="contains">
<tp:outputText object="#{report}"/>
<h:outputText value=" (#{myWithFailedStatusI18nCategoryModel.i18nCodeMap[report.status]})" rendered="#{report.status != 'A'}"/>
</p:column>
<p:column name="button" style="width:20px;">
<p:commandButton update="@(form)" action="#{controller.getPathToDetailForm}"
icon="ui-icon-wrench" styleClass="tpTableButton"
rendered="#{reportController.isEntityUpdateable and organizationController.authenticatedUserOrganization.id == report.organization.id}">
<f:setPropertyActionListener target="#{reportController.entity}" value="#{report}"/>
</p:commandButton>
</p:column>
</p:dataTable>
</h:form>
в контроллере для этого представления у меня есть класс (который стоит за значением businessDomain.value):
public class ReportCategory{
...
private List<ReportEntity> reportEntities;
private List<ReportEntity> filteredReportEntities;
...
public List<ReportEntity> getReportEntities() {
return reportEntities;
}
public List<ReportEntity> getFilteredReportEntities() {
getLogger().info("getFilter called")
return filteredReportEntities;
}
public void setFilteredReportEntities(List<ReportEntity> filteredReportEntities) {
getLogger().info("setFilter called: "+filteredReportEntities);
this.filteredReportEntities = filteredReportEntities;
}
}
начальный безс фильтрацией все нормально .. объекты отображаются правильно.Но если я что-то наберу в фильтре, я получу вызов getFilter и setFilter .. где значение параметра setFilter всегда равно нулю:
getFilter called
setFilter called: null
Я следовал примеру простых лиц https://www.primefaces.org/showcase/ui/data/datatable/filter.xhtml
(я использую простые лица 5.3.14) Я нашел этот вопрос, но я не очень помог мне, потому что im filterValue для dataTable в Primefaces 5.3 всегда null