为什么我的数据表没有显示数据?

时间:2013-12-04 15:20:55

标签: java jsf jsf-2 primefaces

我有一个带有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>&nbsp;</p:spacer>
                        <div style="text-align:center">
                            <h:outputText value="Mapeo de Estatus" />  
                        </div>
                        <p:spacer>&nbsp;</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&oacute;n Estatus Folio">
                                    #{c.estatus.descripcion}
                                </p:column>
                                <p:column headerText="Descripci&oacute;n Tipificaci&oacute;n">
                                    #{c.tipificacion.DESCRIPCION_TIPIFICACION}
                                </p:column>
                                <p:column headerText="Descripci&oacute;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>

为什么我没有从非常乞讨中获取数据? 谢谢你的帮助。

0 个答案:

没有答案