Ea e galera blz
Então eu fiz um arrayList aqui esta quase funcionando legal olha o código:
Nesse código eu passo duas váriaveis, uma string simples e um list:
Essa class faz a consulta no banco
/*
* DAOUsuario.java
*
* Created on 17 de Julho de 2007, 22:18
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package DAO;
import java.io.*;
import java.net.*;
import java.util.*;
import java.sql.*;
import conexao.Conexao;
/**
*
* @author alexandre
*/
public class DAOUsuario
{
private String nome;
private String usuario;
private ResultSet rs;
private Connection conn;
private Statement sql;
/** Creates a new instance of DAOUsuario */
public DAOUsuario() throws SQLException, IOException
{
conn = Conexao.connect();
}
public void setNome(String aNome) throws SQLException, IOException
{
nome = aNome;
PreparedStatement sql = conn.prepareStatement("select * from tabela where usuario = ?");
sql.setString(1,nome);
rs = sql.executeQuery();
while(rs.next())
{
usuario = rs.getString("nome");
}
}
public List getLista() throws SQLException
{
PreparedStatement sql = conn.prepareStatement("select * from tabela");
rs = sql.executeQuery();
List lista = new ArrayList();
while(rs.next())
{
lista.add(rs.getString("nome"));
}
return lista;
}
public String getUsuario()
{
return usuario;
}
}
Essa class recebe os dados capturados do banco pela class acima:
/*
* ValidaUsuario.java
*
* Created on 17 de Julho de 2007, 22:04
*/
package Validacao;
import DAO.DAOUsuario;
import java.io.*;
import java.net.*;
import java.sql.SQLException;
import javax.servlet.*;
import javax.servlet.http.*;
import Interfaces.InterfaceUsuario;
/**
*
* @author alexandre
* @version
*/
public class ValidaUsuario extends HttpServlet {
/** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
*/
private String nome;
private String usuario;
private int erro;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException, SQLException
{
nome = request.getParameter("nome");
InterfaceUsuario validar = new InterfaceUsuario();
validar.setNome(nome);
erro = validar.getErro();
if(erro == 0)
{
DAOUsuario resultado = new DAOUsuario();
resultado.setNome(nome);
request.setAttribute("usuario",resultado);
request.setAttribute("lista",resultado.getLista());
RequestDispatcher view = request.getRequestDispatcher("home.jsp");
view.forward(request,response);
}
else
{
System.out.println("Erro aqui");
}
}
}
Essa é a jsp que imprime os resultados na tela:
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>JSP Page<br></h1>
String de nome simples: <font color="red"> ${usuario.usuario} </font><br>
Lista de nomes com List:<font color="blue">
<table>
<c:forEach var="lista" items="${lista}">
<tr>
<td>${lista}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
O problema é que a jsp esta exibindo os dados do List assim:
[Alexandre, Administrador Filiais, Márcia laura, André Muraro, André Muraro]
Ou seja dentro de cochetes e uma linha direta, a idéia é que ele exiba assim:
Alexandre
Administrador Filial
Marcia laura
André Muraro
André Muraro
Com vcs podem observar na JSTL eu fiz dessa forma:
<c:forEach var=“lista” items="${lista}">
<tr>
<td>${lista}</td>
</tr>
</c:forEach>
Ou seja no loop tem uma tabela logo deveria exibir um abaixo do outro. Onde estou errando? Existe uma forma melhor de fazer isso?
Valeu a todos