Fala pessoal
Gente, não tô conseguindo carregar os dados de uma pesquisa na página jsp, vamo lá: tenho 2 forms, o primeiro carrega todos os dados do banco (tá carregando normal) e o outro form serve pra pesquisar (esse é o problemático). Não sei mais o que mudar, já consegui carregar os dados da base no primeiro form, agora pra pesquisar e carregar o resultado da pesquisa que eu to apanhando
pagina jsp
<html>
<jsp:useBean id="contato" class="br.com.caelum.agenda.dao.ContatoDao"/>
<jsp:useBean id="pesquisa" class="br.com.caelum.agenda.servlets.PesquisarContatos"/>
<head>
<meta charset="ISO-8859-1">
<title>Teste</title>
</head>
<body>
<table border="1">
<tr> <th>Nome</th> <th>E-mail</th> <th>Endereço</th> <th>Data Nascimento</th> </tr>
<c:forEach var="con" items="${contato.listaContato}">
<tr>
<td>${con.nome}</td>
<td>${con.email}</td>
<td>${con.endereco}</td>
<td>${con.nascimento}</td>
</tr>
</c:forEach>
</table>
<br/>
<form action="PesquisarContatos" method="post">
<table border="1">
<c:forEach var="pes" items="${pesquisa.listaContatoPesquisa}">
<tr>
<td>${pes.nome}</td>
<td>${pes.email}</td>
<td>${pes.endereco}</td>
<td>${pes.nascimento}</td>
</tr>
</c:forEach>
</table>
<input type="text" name="nome"/>
<input type="submit" value="Enviar"/>
</form>
Servlet
package br.com.caelum.agenda.servlets;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.caelum.agenda.bean.Contato;
import br.com.caelum.agenda.dao.ContatoDao;
@WebServlet("/PesquisarContatos")
public class PesquisarContatos extends HttpServlet {
private List listaContatoPesquisa;
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//response.getWriter().append("Served at: ").append(request.getContextPath());
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
String nome = request.getParameter("nome");
ContatoDao dao = new ContatoDao();
this.listaContatoPesquisa = dao.getListaContatoPesquisa(nome);
System.out.println("(Servlet) Quantidade de registros encontrados: "+listaContatoPesquisa.size());
request.setAttribute("pesquisa", listaContatoPesquisa);
request.getRequestDispatcher("teste.jsp").forward(request, response);
}
public List getListaContatoPesquisa() {
return this.listaContatoPesquisa;
}
}
dao
package br.com.caelum.agenda.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import br.com.caelum.agenda.bean.Contato;
import br.com.caelum.agenda.conexao.Conexao;
import br.com.caelum.agenda.interfaces.ContatoInterface;
public class ContatoDao {
private Connection con;
private List<Contato> listaContato = new ArrayList<Contato>();
private List<Contato> listaContatoPesquisa = new ArrayList<Contato>();
public ContatoDao() {
try {
this.con = Conexao.psConnection();
System.out.println("Conectou..");
} catch (SQLException e) {
e.printStackTrace();
}
}
public List getListaContato() {
String SQL = "select * from contato";
try {
PreparedStatement ps = con.prepareStatement(SQL);
ResultSet rs = ps.executeQuery();
while(rs.next()) {
Contato contato = new Contato();
contato.setNome(rs.getString("nome"));
contato.setEmail(rs.getString("email"));
contato.setEndereco(rs.getString("endereco"));
contato.setNascimento(rs.getString("nascimento"));
listaContato.add(contato);
System.out.println("nome: "+rs.getString("nome"));
}
ps.close();
rs.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
return listaContato;
}
public List getListaContatoPesquisa(String nome) {
String SQL = "select * from contato where nome = ?";
try {
PreparedStatement ps = con.prepareStatement(SQL);
ps.setString(1, nome);
ResultSet rs = ps.executeQuery();
while(rs.next()) {
Contato contato = new Contato();
contato.setNome(rs.getString("nome"));
contato.setEmail(rs.getString("email"));
contato.setEndereco(rs.getString("endereco"));
contato.setNascimento(rs.getString("nascimento"));
listaContatoPesquisa.add(contato);
}
rs.close();
ps.close();
con.close();
System.out.println("Conseguiu pesquisar");
} catch (SQLException e) {
System.out.println("Nao conseguiu pesquisar");
e.printStackTrace();
}
return listaContatoPesquisa;
}
}