Apos pesquisar dados nao aparecem na pagina jsp

0 respostas
A

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;
	}
}
Criado 5 de janeiro de 2019
Respostas 0
Participantes 1