Listar Dados de uma tabela com JSF + mysql

Pessoal, estou querendo listar os dados do meu banco, mas andei pesquisando e vi que precisa usar dataTable, entao fiz um cadastro mas nao estou conseguindo exibir os dados numa pagina, alguem pode dá uma olhada no códgo?!

o código da minha Dao onde lista os dados do banco:
obs.: no meu console os dados são mostrados.

public class FuncionarioDao {
    ResultSet res ;
    Funcionario funcionario = new Funcionario();
     ArrayList<Funcionario> funcionarios = new ArrayList<Funcionario>();    
    
   public FuncionarioDao() {       
    }
      public List<Funcionario> getListarTodos() throws SQLException {
       Conexao conexao = Conexao.getInstance();
       Connection con = conexao.getConnection();  
       PreparedStatement pstm = con.prepareStatement("select * from funcionario");
       ResultSet rs = pstm.executeQuery();       
       while (rs.next()) {                     
           funcionario.setNome(rs.getString("nome"));
           funcionario.setSexo(rs.getString("sexo"));
           funcionario.setCidade(rs.getString("cidade"));                      
           funcionarios.add(funcionario);
           System.out.println(funcionario.getNome()+","+funcionario.getSexo()+","+funcionario.getCidade());
       }
       rs.close();
       pstm.close();
       return funcionarios;       
}

o codigo da minha pagina que deveria listar os dados do meu banco:
obs.: coloquei em value" funcionarios" porque pelo que vi colocaria em value o nome do array, entao na minha Dao criei esse array. Podem me ajudar?. Obrigado

<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
	<h:dataTable value ="#{funcionarios}" var = "func">
		<h:column>
			<h:outputText value="#{func.nome}"/>
		</h:column>
		<h:column>
			<h:outputText value="#{func.sexo}"/>
		</h:column>
		<h:column>
			<h:outputText value="#{func.cidade}"/>
		</h:column>
	</h:dataTable>
</body>
</html>

não

vc tem que criar um managed bean funcionarios por exemplo, criar um metodo que retorne uma lista

[code] */
public class ControleCidade {
Cidade cidade = new Cidade();
CidadeDAO cidadeDAO = new CidadeDAO();

public List<Cidade> getCidades() throws SQLException{
    List<Cidade> cidades = cidadeDAO.getListarTodas();
    return cidades;
}

}[/code]

e no jsp vc chama assim … value=#{managedbean.lista}

esse daí era um dos problemas mesmo!!!
fiz isso, alterei algumas coisas aqui e deu certo. Obrigado pela força! vlw

Olá galera.

Procurei de diversas formas, mas não entendo como posso selecionar os dados se eu não usar um dataTable ou um panelGrid. Eu queria selecionar apenas dentro dos outputText mesmo, mas como vou fazer isso, sendo que tenho que chamar o método?

Estou tentando deste modo porque o que pretendo selecionar é um texto completo e o css da página não vai tolerar uma tabela.

Acho que isso não é possível, já que foge dos princípios do JSF, mas peço uma ajuda ou explicação se isso é possível ou não.

Agradeceria muito a ajuda de vocês.

Olá pessoal.

Já que não consegui, então tentei com um datatable mas tá listando em branco oO

vejam

users.jsp

<h:dataTable value ="#{userBean.lista}" var = "lista"> <h:column> <h:outputText value="#{lista.nome}"/> </h:column> <h:column> <h:outputText value="#{lista.sobrenome}"/> </h:column> <h:column> <h:outputText value="#{lista.email}"/> </h:column> </h:dataTable>

cadastro.java

[code]// método para selecionar usuários
public List selectUser() {
List lista = new ArrayList();
try {
conn = Conexao.getConexao();
pstmt = conn.prepareStatement(“SELECT * FROM users001”);
while(rs.next()) {
User user = new User();
user.setNome(rs.getString(“firstname”));
user.setSobrenome(rs.getString(“lastname”));
user.setEmail(rs.getString(“email”));

                 lista.add(user);
                 
        }
                 rs.close();
                 
        } catch (SQLException sqlex) {
            sqlex.getMessage();
        }
    return lista;
    }[/code]

Em User user = new User(); eu chamo a classe onde estã os getters e setters e está no mesmo pacote.

O quê mais tenho que fazer? Criar navigation-rule? Tô perdido.

Alguém poderia postar uma explicação ou um simples exemplo do por que de não ter conseguido?

Obrigado.