sirve rendered que para etiquetas jsf primefaces datatable jsf-2.2 data-export

jsf - rendered - Dataexporter devuelve filas vacías después de filtrar



rendered jsf para que sirve (1)

Resuelto Encontré una advertencia en mi registro con respecto a la propiedad filteredValue de la tabla de datos.

[0m[33m17:26:45,701 WARNING [org.primefaces.component.datatable.DataTable] (default task-4) DataTable form:persons has filtering enabled but no filteredValue model reference is defined, for backward compatibility falling back to page viewstate method to keep filteredValue. It is highly suggested to use filtering with a filteredValue model reference as viewstate method is deprecated and will be removed in future.

Por lo tanto, agregué esta propiedad que luego resolvió el problema

<p:dataTable id="persons" var="person" value="#{personBean.personList}" rowKey="#{person.id}" selection="#{personBean.selectedPerson}" selectionMode="single" emptyMessage="#{msg[''com.noEntries'']}" paginator="true" rows="15" filteredValue="#{personBean.filtered}">

Y agregó la siguiente propiedad en PersonBean también

private List<PersonEntity> filtered; public List<PersonEntity> getFiltered() { return filtered; } public void setFiltered(List<PersonEntity> filtered) { this.filtered = filtered; }

Tengo una tabla de datos en mi vista xhtml con filtrado habilitado. Además, existe la función Primefaces export (para Excel) en el menú contextual. Cuando uso esta función sin filtrar la tabla de datos, funciona bien, pero cuando filmo primero y den exportar los datos obtengo un archivo con filas vacías.

Este es mi código:

<p:panel header="#{msg[''prs.list'']}"> <p:contextMenu for="persons"> <p:menuitem value="#{msg[''com.view'']}" icon="#{msg[''icon.view'']}" action="#{personBean.redirectToEditPerson}"/> <p:menuitem value="#{msg[''student.new'']}" icon="#{msg[''icon.new'']}" action="#{personBean.redirectToNewStudent}"/> <p:menuitem value="#{msg[''prs.new'']}" icon="#{msg[''icon.new'']}" url="edit.xhtml"/> <p:menuitem value="#{msg[''report.export.excel'']}" ajax="false" icon="#{msg[''icon.export'']}"> <p:dataExporter type="xls" target="persons" fileName="export" /> </p:menuitem> </p:contextMenu> <p:dataTable id="persons" var="person" value="#{personBean.personList}" rowKey="#{person.id}" selection="#{personBean.selectedPerson}" selectionMode="single" emptyMessage="#{msg[''com.noEntries'']}" paginator="true" rows="15"> <p:column headerText="Id"> <h:outputText value="#{person.id}"/> </p:column> <p:column headerText="#{msg[''prs.name'']}" filterBy="name" filterMatchMode="contains"> <h:outputText value="#{person.name}"/> </p:column> <p:column headerText="#{msg[''prs.surname'']}" filterBy="surname" filterMatchMode="contains"> <h:outputText value="#{person.surname}"/> </p:column> <p:column headerText="#{msg[''prs.email'']}" filterBy="email" filterMatchMode="contains"> <h:outputText value="#{person.email}"/> </p:column> </p:dataTable> <f:facet name="footer"> <p:button value="#{msg[''prs.new'']}" icon="#{msg[''icon.new'']}" outcome="edit"/> </f:facet> </p:panel>

Estoy usando Primefaces 4, JSF 2 y Java 7 en Wildfly 8