我有一个带有primefaces的数据表,它有一个过滤列。因此,当我访问我的xhtml时,它不显示填充的数据,直到我在过滤器中输入值。或者如果我取出过滤器,它会显示填充的数据。 这是我的托管bean代码:
@ManagedBean(name="estatusAdminMB")
@ViewScoped
public class EstatusAdminManagedBean implements Serializable {
private IEstatusService estatusService;
private List<MapeoEstatusDTO> mapeoEstatusList = new ArrayList<MapeoEstatusDTO>();
private List<MapeoEstatusDTO> filteredPorMapeoEstatusDTO = new ArrayList<MapeoEstatusDTO>();
private MapeoEstatusDTO selectedMapeoEstatus = new MapeoEstatusDTO();
/**
* Creates a new instance of EstatusAdminManagedBean
*/
public EstatusAdminManagedBean() {
ApplicationContext context =
new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml"});
mensajeriasService = (IMensajeriasService) context.getBean("MensajeriasService");
originadoresService = (IOriginadoresService) context.getBean("OriginadoresService");
estatusService = (IEstatusService) context.getBean("EstatusService");
populateMapeo();
}
private void populateMapeo() {
try {
mapeoEstatusList.clear();
mapeoEstatusList.addAll(estatusService.getMapeoEstatus());
System.out.println(mapeoEstatusList.size());
} catch (ServiceException ex) {
Logger.getLogger(EstatusAdminManagedBean.class.getName()).log(Level.SEVERE, null, ex);
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error",
"Ocurrió un error al cargar el mapeo."));
}
}
public void onRowSelect(SelectEvent event) {
FacesMessage msg = new FacesMessage("Mapeo Seleccionado", ((MapeoEstatusDTO) event.getObject()).getCodigo().getDescripcion());
FacesContext.getCurrentInstance().addMessage(null, msg);
}
public IEstatusService getEstatusService() {
return estatusService;
}
public void setEstatusService(IEstatusService estatusService) {
this.estatusService = estatusService;
}
public MapeoEstatusDTO getSelectedMapeoEstatus() {
return selectedMapeoEstatus;
}
public void setSelectedMapeoEstatus(MapeoEstatusDTO selectedMapeoEstatus) {
this.selectedMapeoEstatus = selectedMapeoEstatus;
}
public List<MapeoEstatusDTO> getFilteredPorMapeoEstatusDTO() {
return filteredPorMapeoEstatusDTO;
}
public void setFilteredPorMapeoEstatusDTO(List<MapeoEstatusDTO> filteredPorMapeoEstatusDTO) {
this.filteredPorMapeoEstatusDTO = filteredPorMapeoEstatusDTO;
}
}
这是我的xhtml代码:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-US"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
>
<h:body>
<ui:composition template="../template/Layout.xhtml">
<ui:define name="content">
<div class="frame">
<h:form id="mapeoForm">
<p:growl id="growl" showDetail="true" />
<p:spacer> </p:spacer>
<div style="text-align:center">
<h:outputText value="Mapeo de Estatus" />
</div>
<p:spacer> </p:spacer>
<div align="center">
<p:dataTable id="mapeoTable" var="c" value="#{estatusAdminMB.mapeoEstatusList}" paginator="true" rows="10"
selection="#{estatusAdminMB.selectedMapeoEstatus}" selectionMode="single"
filteredValue="#{estatusAdminMB.filteredPorMapeoEstatusDTO}"
emptyMessage="No hay registros" rowKey="#{c.idMapeo}" rowIndexVar="rowIndex">
<p:ajax event="rowSelect" listener="#{estatusAdminMB.onRowSelect}"
update=":mapeoForm:dialogUpdate, :mapeoForm:growl"
oncomplete="dialogUpdateW.show()"/>
<f:facet name="header">
Haz clic sobre cualquier registro para editar
</f:facet>
<p:column id="originadorColumn" filterBy="#{c.originadorDTO.nombre}"
headerText="Originador" filterMatchMode="contains">
<h:outputText value="#{c.originadorDTO.nombre}" />
</p:column>
<p:column headerText="Descripción Estatus Folio">
#{c.estatus.descripcion}
</p:column>
<p:column headerText="Descripción Tipificación">
#{c.tipificacion.DESCRIPCION_TIPIFICACION}
</p:column>
<p:column headerText="Descripción Estatus Geotracking">
#{c.codigo.descripcion}
</p:column>
</p:dataTable>
<p:dialog maximizable="true" minHeight="400" minWidth="400" style="overflow-y:auto; top:5px; bottom:5px;"
id="dialogUpdate" header="Editar Mapeo" widgetVar="dialogUpdateW" resizable="false"
showEffect="fade" hideEffect="explode">
<h:form id="updateMapForm">
<table id="display">
</table>
</h:form>
</p:dialog>
</div>
</h:form>
</div>
</ui:define>
</ui:composition>
</h:body>
</html>
为什么我没有从非常乞讨中获取数据? 谢谢你的帮助。