Lista não é exibida (JSP)

Boa tarde, amigos.

Criei uma lista em jsp, fiz os imports necessários, copiei o driver do mysql e o jar do projeto utilizado, quando executado, é [color=green]CONSTRUÍDO COM SUCESSO[/color], porém a lista não é exibida.

É um exercício da Caelum (FJ-21). Eis as classes e o jsp utilizados:

lista-scriptlet

[code]<%@page import=“modelo.Contato”%>
<%@page import=“dao.ContatoDAO”%>
<%@page import=“java.util.List”%>

    <%
    ContatoDAO dao = new ContatoDAO();
    List<Contato> contatos = dao.getLista();

    for(Contato contato : contatos){
        %>

        <li><%=contato.getNome()%>,<%=contato.getEmail()%>,<%=contato.getEndereco()%></li>

        <%
        }
    %>

</ul></html>[/code]

Contato

[code]package modelo;

/**

  • Classe com os getters e setters que serão utilizados pela classe ContatoDAO

  • @author marcus/+/LaraSoft/+/
    */
    public class Contato {

    private Long id;
    private String nome;
    private String email;
    private String endereco;

    public String getEmail() {
    return email;
    }

    public void setEmail(String email) {
    this.email = email;
    }

    public String getEndereco() {
    return endereco;
    }

    public void setEndereco(String endereco) {
    this.endereco = endereco;
    }

    public Long getId() {
    return id;
    }

    public void setId(Long id) {
    this.id = id;
    }

    public String getNome() {
    return nome;
    }

    public void setNome(String nome) {
    this.nome = nome;
    }
    }[/code]

[code]ContatoDAO
package dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import modelo.Contato;
import conexao.ConnectionFactory;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

/**

  • Classe capaz de acessar o banco de dados através do Design Patter DAO

  • @author marcus/+/LaraSoft/+/
    */
    public class ContatoDAO {

    private Connection connection;

    public ContatoDAO() throws SQLException {
    this.connection = ConnectionFactory.getConnection();
    }

    public List getLista() throws SQLException {

     PreparedStatement stmt = this.connection.prepareStatement("select * from contatos where nome like 'C%'");
     ResultSet rs = stmt.executeQuery();
    
     List<Contato> contatos = new ArrayList<Contato>();
    
     while (rs.next()) {
         // criando o objeto Contato
         Contato contato = new Contato();
         contato.setNome(rs.getString("nome"));
         contato.setEmail(rs.getString("email"));
         contato.setEndereco(rs.getString("endereco"));
    
         // adicionando o objeto à lista
         contatos.add(contato);
     }
     rs.close();
     stmt.close();
    
     return contatos;
    

    }

    public void adiciona(Contato contato) throws SQLException {

     String sql = "insert into contatos(nome,email,endereco)values(?,?,?)";
     PreparedStatement stmt = connection.prepareStatement(sql);
    
     stmt.setString(1, contato.getNome());
     stmt.setString(2, contato.getEmail());
     stmt.setString(3, contato.getEndereco());
    
     stmt.execute();
     stmt.close();
    

    }

    public List selectById() throws SQLException {

     PreparedStatement stmt = this.connection.prepareStatement("select * from contatos where id = 1");
     ResultSet rs = stmt.executeQuery();
    
     List<Contato> contatos = new ArrayList<Contato>();
    
     while (rs.next()) {
         // criando o objeto Contato
         Contato contato = new Contato();
         contato.setNome(rs.getString("nome"));
         contato.setEmail(rs.getString("email"));
         contato.setEndereco(rs.getString("endereco"));
    
         // adicionando o objeto à lista
         contatos.add(contato);
     }
     rs.close();
     stmt.close();
    
     return contatos;
    

    }

    public void altera(Contato contato) throws SQLException {
    PreparedStatement stmt = connection.prepareStatement(“update contatos set nome=?, email=?, endereco=? where id=1”);
    stmt.setString(1, contato.getNome());
    stmt.setString(2, contato.getEmail());
    stmt.setString(3, contato.getEndereco());
    stmt.execute();
    stmt.close();
    }

    public void remove(Contato contato) throws SQLException {
    PreparedStatement stmt = connection.prepareStatement(“delete from contatos where id=3”);
    stmt.execute();
    stmt.close();
    }
    }[/code]
    Agradeço pela ajuda.

Perguntas:
Você digitou a url corretamente?
Tem registros inseridos na tabela contato?

Sim. A url está correta e verifiquei os registros no mysql.

E o que acontece no console? Tem algum erro?

Já pensou em usar o debug?

Oi. Tem algum contato que comece com a letra “C”?
Na sua query você está buscando todos os contatos que começam com a letra “C”.

PreparedStatement stmt = this.connection.prepareStatement("select * from contatos where nome like 'C%'");  

Sim, é verdade. Acho que você matou a charada de novo. Vou testar e digo o resultado. Obrigado a todos.

Era isso mesmo. Tinha colocado aquele refinamento na pesquisa (buscar contatos com a letra C), e esqueci de tirar. Valeu…