Pessoal,
Preciso de uma ajuda no meu código abaixo para imprimir dados vindo de um banco em uma página jsp, acho que minha lógica está certa porém empaquei no código.
Servlet
protectedvoiddoRequest(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{// TODO Auto-generated method stubUsuariouser=newUsuario();Stringid=request.getParameter("id");Stringnome=request.getParameter("Nome");Stringnivel=request.getParameter("Nivel");Stringstatus=request.getParameter("Status");Listlista=null;try{UsuarioDaoMysqluDao=newUsuarioDaoMysql();lista=uDao.listarUsuarios();request.setAttribute("listaUsuarios",lista);response.sendRedirect("Config.jsp");}catch(ClassNotFoundExceptione){// TODO Auto-generated catch blocke.printStackTrace();}catch(SQLExceptione){// TODO Auto-generated catch blocke.printStackTrace();}}
Aqui que não sei como fazer:
<%@pageimport="java.util.List"%><%@pagelanguage="java"contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html; charset=ISO-8859-1"><title>Inserttitlehere</title></head><body><h1>Listadeusuarios</h1><table><tr><td>id</td><td>Nome</td><td>Nivel</td><td>Status</td></tr><%Listlista=(List)request.getAttribute("listaUsuarios");for(inti=0;i<lista.size();i++){%><tr><td><%=lista.get(i)%></td></tr><%}%></table></body></html>
“usuarios” realmente está sendo preenchido ?
Se usar um foreach em uma lista nulla, gera a exceção. Se sim, verifique se o seu objeto usuario não está nulo.
Ele está me retornando que não tem lista, estranho pq acho que não achei o erro no meu servlet.
Verifique se o seu DAO está retornando a Lista corretamente
C
CaioNascimento
Retorna os dados sem erro algum:
publicstaticvoidmain(String[]args)throwsClassNotFoundException,SQLException{// TODO Auto-generated method stubUsuariouser=newUsuario();UsuarioDaoMysqluDao=newUsuarioDaoMysql();List<Usuario>lista=uDao.listarUsuarios();for(Usuariou:lista){System.out.println(u.getIdUsuario()+"-"+u.getNome()+"-"+u.getNivel()+"-"+u.getStatus());}
Será que o erro pode estar no servlet?
C
CaioNascimento
até aqui ele ainda funciona:
Fiz um teste no servlet ele está printando os nomes
protectedvoiddoRequest(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{// TODO Auto-generated method stubUsuariouser=newUsuario();Stringid=request.getParameter("id");Stringnome=request.getParameter("Nome");Stringnivel=request.getParameter("Nivel");Stringstatus=request.getParameter("Status");try{List<Usuario>lista=newArrayList<Usuario>();UsuarioDaoMysqluDao=newUsuarioDaoMysql();lista=uDao.listarUsuarios();for(Usuariou:lista){System.out.println(u.getIdUsuario()+"-"+u.getNome()+"-"+u.getNivel()+"-"+u.getStatus());}request.setAttribute("listaUsuarios",lista);response.sendRedirect("Config.jsp");}catch(ClassNotFoundExceptione){// TODO Auto-generated catch blocke.printStackTrace();}catch(SQLExceptione){// TODO Auto-generated catch blocke.printStackTrace();}
E
evefuji
acho que o problema está em:
response.sendRedirect("Config.jsp");
Acho que nesse caso vc devia usar um forward né?
williamdasflores
CaioNascimento,
Como nosso amigo “evefuji” disse tente usar o forward se você não conseguir tente usar o RequestDispatcher, porque não estou vendo nada de errado. Tenta fazer essas alterações aí, qualquer coisa posta aí de novo
C
CaioNascimento
Meus caros,
Utilizei o RequestDispatcher, e funcionou!