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
[code]<f:view>
Cadastro de Setores <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>
[/code]