Ajuda, Imprimir ArrayList na JSP

1 resposta
Sergiorsilva

Boa tarde pessoal do GUJ,

Preciso de uma ajuda, não consigo imprimir um Arraylist na minha página JSP, já fiz isso um monte de vezes mas dessa vez não acho o problema.

Na minha classe POJO Usuário as variáveis de instancias estão assim:

public class Usuario {

    private int id;
    private String nome;
    private byte privilegio;
    private Conta conta = new Conta();     // Usuário tem um conta!
    private Contato contato = new Contato();     //Usuário tem um contato!

    private ArrayList<Object> lista_usuarios = new ArrayList<Object>();     // Lista receberá uma lista de Usuário!

    //Métodos getters e setters!

Na minha Servlet tá assim:

u.setNome(request.getParameter("valorConsulta"));     // Recebe o valor 2 para realizar uma consulta através do Nome!
    
uDAO.getConsulta(u);     // Passa uma instancia do Objeto Usuário como parâmetro para o método consultar da classe DAO! Note que o todos os atributos de Usuário são nulos, com exceção de Nome!
   
 request.setAttribute("user", u);     //No método consulta da DAO todos os atributos que eram nulos são preenchidos através de uma consulta ao SGBD. A consulta foi feita através do Nome passado e como é muito comum haver usuários com o mesmo nome, então a consulta trás todos com os nomes iguais e salva em uma lista!
    
response.sendRedirect("admin.jsp?pagina=consulta_nome");    //Direciona para a página que irá exibir o resultado da consulta!

Na minha classe DAO que faz a consulta tá assim:

pstmt = conn.prepareStatement("CONSULTA MALANDRA");     // Consulta tá funcionando!
                rs = pstmt.executeQuery();

                while (rs.next()) {
                    usuario.setId(rs.getInt(1));
                    usuario.setNome(rs.getString(2));
                    usuario.setPrivilegio(rs.getByte(3));
                    usuario.getConta().setId(rs.getInt(4));
                    usuario.getContato().setId(rs.getInt(5));
                    usuario.getConta().setLogin(rs.getString(6));
                    usuario.getConta().setSenha(rs.getString(7));
                    usuario.getConta().setStatus(rs.getBoolean(8));
                    usuario.getContato().setEmail(rs.getString(9));
                    usuario.getContato().setRamal(rs.getString(10));
                    usuario.getContato().setTelefone(rs.getString(11));

                    //Até aqui tranquilo!

                    listaUsuario.add(usuario); // Essa lista foi declarada no inicio do método consultar, tá assim ? ArrayList<Object> listaUsuario = new ArrayList<Object>();

                    usuario.setLista_usuarios(listaUsuario); // Agora o método de acesso da classe POJO Usuário referente a lista_usuarios que é do tipo ArrayList recebe listaUsuario, são do mesmo tipo!

                //Isso quer dizer que lista_usuario tem uma lista com a consultas feita através do Nome informado!
                }

Por fim o trecho da JSP:

<jsp:useBean id="user" class="pacote" scope="request"/>
                
              <!?No corpo da página -->

                <c:forEach var="lista" items="${sessionScope[user].lista_usuarios}">
                    ${lista.nome}
                </c:forEach>

                <!?Acho que a confusão tá ai no looping -->

Por favor, não sei o que eu estou fazendo de errado, tentei de varias formas, agora meu código está dessa maneira.

Agradeço, att.

1 Resposta

Sergiorsilva

Up!

Criado 8 de março de 2011
Ultima resposta 9 de mar. de 2011
Respostas 1
Participantes 1