Fala galera, beleza?
Me deparei com um problema chato hoje de manhã, e estou quebrando um pouco a cabeça para resolver. É o seguinte:
Tenho um data table (utilizando PrimeFaces) que deve apresentar os dados de algumas escolas. Vejam:
<h:form>
<p:dataTable var="inst" value="#{instituicaoMB.lista}">
<p:column headerText="Nome">
<h:outputText value="#{inst.nomeInst}" />
</p:column>
<p:column headerText="Diretor(a)">
<h:outputText value="#{inst.diretorInst}" />
</p:column>
<p:column headerText="Endereço">
<h:outputText value="#{inst.enderecoInst}" />
</p:column>
<p:column headerText="Telefone">
<h:outputText value="#{inst.telefoneInst}" />
</p:column>
</p:dataTable>
</h:form>
ManagedBean:
@ManagedBean
@RequestScoped
public class InstituicaoMB {
private String idInst;
private String nomeInst;
private String diretorInst;
private String enderecoInst;
private String telefoneInst;
private List<InstituicaoBean> lista = new ArrayList<InstituicaoBean>();
public InstituicaoMB() {
this.lista = getLista();
}
public List<InstituicaoBean> getLista() {
InstituicaoDAOImpl id = new InstituicaoDAOImpl();
List<InstituicaoBean> insts = new ArrayList();
try {
insts = id.exibirTodasInstituicoes();
} catch (Exception ex) {
Logger.getLogger(InstituicaoMB.class.getName()).log(Level.SEVERE, null, ex);
}
return insts;
}
//continuação do código
InstituicaoDAOImpl:
public List<InstituicaoBean> exibirTodasInstituicoes() throws Exception {
HibernateUtil.getSession();
try {
Criteria criteria = getSession().createCriteria(InstituicaoBean.class);
criteria.addOrder(Order.asc("nomeInstituicao"));
return criteria.list();
} catch (Exception ex) {
ex.printStackTrace();
return null;
}
}
Mas aí, quando acesso a página, aparece apenas o cabeçalho do DataTable, e nas colunas onde deveriam aparecer os dados,
aparece:
“No records found”
Podem me ajudam é para o meu TCC =/
[]'s
Verifique se insts = id.exibirTodasInstituicoes(); está retornando algum registro (de um system.out)
Amigo, primeiramente, não faça a logica de apresentação dentro de um get.
Faça um metodo que fará isso pra vc, e chame ele antes e popular e pegue no get da lista.
Vc debugou o código para ver se ele retorna algo mesmo?
Conseguiram resolver? Estou com o mesmo problema.
prjava
#5
Mude o escopo para session e veja o que acontece.
Obrigado pela atenção.
Não era este o erro.
Segue o código corrigido. Obrigado.
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title>Gerenciar Imóveis</title>
</h:head>
<h:body>
<div align="center">
<h:form id="formPrincipal">
<p:dataTable id="tabelaImoveis" value="#{imovelBean.imoveis}"
var="lista" style="width:70%">
<f:facet name="header">Gerenciador de Imóveis</f:facet>
<p:column headerText="Matrícula">
<h:outputText value="#{lista.matriculaImovel}" />
</p:column>
<p:column headerText="Endereço">
<h:outputText value="#{lista.enderecoImovel}" />
</p:column>
<p:column headerText="Valor do Imóvel">
<h:outputText value="#{lista.valorImovel}">
<f:convertNumber type="currency" locale="pt_BR" />
</h:outputText>
</p:column>
<p:column headerText="Ações">
<p:commandButton value="Alterar" onclick="PF('dialogAlterar').show();">
</p:commandButton>
<p:commandButton value="Excluir" onclick="PF('dialogExcluir').show();">
</p:commandButton>
</p:column>
</p:dataTable>
<p:dialog header="Alterar Registro" widgetVar="dialogAlterar"
modal="true">
<p:panelGrid id="panelAlterar" columns="2">
<h:outputText value="Matrícula" />
<p:inputText value="#{imovelBean.imovel.matriculaImovel}" />
<h:outputText value="Endereço:" />
<p:inputText value="#{imovelBean.imovel.enderecoImovel}" />
<h:outputText value="Valor:" />
<p:inputText value="#{imovelBean.imovel.valorImovel}" />
</p:panelGrid>
<p:commandButton value="Alterar" action="#{imovelBean.alterar}"
onclick="dialogAlterar.hide();" update="formPrincipal" />
</p:dialog>
<p:dialog header="Excluir Registro" widgetVar="dialogExcluir"
modal="true">
<p:panelGrid id="panelExcluir" columns="2">
<h:outputText value="Matrícula" />
<h:inputText value="#{imovelBean.imovel.matriculaImovel}" />
</p:panelGrid>
<p:commandButton value="Excluir" action="#{imovelBean.remover}"
onclick="dialogExcluir.hide();" update="formPrincipal" />
</p:dialog>
<p:confirmDialog global="true">
<p:commandButton value="Sim" type="button"
styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
<p:commandButton value="Não" type="button"
styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
</p:confirmDialog>
<p:dock position="bottom">
<p:menuitem value="Trocar Usuário" icon="/imagens/index.jpg" url="#" />
<p:menuitem value="Imóvel" icon="/imagens/imovel.jpg" url="#" />
<p:menuitem value="Proponente" icon="/imagens/proponentes.jpg" url="#" />
<p:menuitem value="Proposta" icon="/imagens/proposta.png" url="#" />
<p:menuitem value="Usuário" icon="/imagens/usuario.png" url="#" />
</p:dock>
</h:form>
</div>
</h:body>
</html>