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.