Pessoal,
A pedido da diretoria da minha empresa comecei a testar JSF. Por obrigação profissional estou fazendo isso, mas não gostei muito.
Tentei fazer um apresentar um componente dataTabele na minha página, mas não consegui. Abaixo seguem o método que acessa o banco de dados e o trecho em JSF:
public ListDataModel buscarTodos() throws SQLException {
List<AgendaDB> todos = new ArrayList<AgendaDB>();
try {
stm = con.createStatement();
rs = stm.executeQuery("SELECT * FROM pessoa");
while (rs.next()) {
todos.add(new AgendaDB(rs.getString(1), rs.getString(2), rs.getString(3), rs.getString(4)));
}
rs.close();
stm.close();
} catch (SQLException e) {
System.err.println ("Erro: "+e);
}
return new ListDataModel(todos);
}
<h:dataTable id="tabela" value="#{AgendaDB.buscarTodos}" var="todos">
<h:column >
<f:facet name="header">
<h:outputText value="Nome" />
</f:facet>
<h:outputText value="#{todos.nome}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Endereço"/>
</f:facet>
<h:outputText value="#{todos.endereco}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Cidade"/>
</f:facet>
<h:outputText value="#{todos.cidade}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Telefone"/>
</f:facet>
<h:outputText value="#{todos.telefone}"/>
</h:column>
</h:dataTable>
Lembro que estou testando com o exemplo do tutorial aqui do GUJ, porém fiz alterações para expandí-lo. Não acontece nenhum erro, apenas os registros que estão na tabela do banco de dados não aparecem no dataTable, apenas o cabeçalho.
Agradeço se alguém poder me ajudar!