Retornar Lista para um DataTable

1 resposta
Morpheus_Urubu

Pessoal, estou iniciando em JSF, e depois de finalmente conseguir fazer os dados de uma tela se comunicarem com o banco de dados, tropecei e mais um problema:

COMO FAZER COM QUE UMA LIST QUE CONTENHA UM OBJETO PERSISTIDO NUM BANCO DE DADOS, APARECER EM UMA DATATABLE ?

Será que meu racicionio está correto ?

Eu estou tendo um erro quando inicio o JSF, dizendo que o metodo #{setorManager.getSetores} não existe, mas ele está la !

Estou tentando da seguinte maneira:

Meu DAO:

public List getSetores() {
        session = HibernateUtil.getSessionFactory().openSession();
        try {
            session.beginTransaction();
            List setores = session.createQuery("from setor").list();
            session.getTransaction().commit();
            session.flush();
            return setores;
        } catch (HibernateException ex) {
            session.getTransaction().rollback();
            System.err.println("Erro de persistencia :" + ex);
            return null;
        } finally {
            session.close();
        }
    }

Meu ManagedBean

public String getSetores() {
        SetorDAO dao = new SetorDAO();
        try {
            dao.getSetores();
            return SUCESSO;
        } catch (Exception e) {
            return FALHA;
        }

meu JSP

<f:view>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <title>Cadastro de Setores</title>
    </head>
    <body>
        <h1><h:outputText value="Cadastro de Setores" /></h1>
        <h:form>

             <h:dataTable value="#{setorManager.getSetores}" var="item">
                 <h:column>
                 <f:facet name="header">
                     <h:outputText  value="Setor"/>
                 </f:facet>
                 <h:outputText value="#{setorManager.setor.setor}"/>
                 </h:column>
                 <h:column>
                     <f:facet name="header">
                         <h:outputText  value="Descrição"/>
                     </f:facet>
                     <h:outputText value="#{setorManager.setor.descricao}"/>
                     </h:column>
             </h:dataTable>

            <h:inputText value="#{setorManager.setor.setor}"  />
            <h:inputText maxlength="100" value="#{setorManager.setor.descricao}" size="100" />
            <h:commandButton value="Cadastrar" action="#{setorManager.inserir}" />
        </h:form>

    </body>
</html>
</f:view>

1 Resposta

Vini_Fernandes

Cara, creio que seu problemas será resolvido fazendo o seguinte:

//#{setorManager.getSetores}

#{setorManager.setores}

Ate mais

Criado 11 de maio de 2009
Ultima resposta 11 de mai. de 2009
Respostas 1
Participantes 2