Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Não consigo listar meus objetos usando Spring MVC

estou aprendendo e Spring MVC. Já consegui Persitir, agora estou tentando mostrar meus objetos no Table mais não aparece nada. Segue meu código

@RequestMapping("listarTarefas")
    public String lista(Model model){

        try {
            Connection conn = new ConnectionFactory().getConnection();
            TarefaDAO dao = new TarefaDAO(conn);
            List<Tarefa> tarefas = dao.lista();
            model.addAttribute("tarefas", tarefas);

            return "tarefa/lista-tarefas";
        } catch (Exception e) {
            throw new RuntimeException(e);
        }

    }

DAO

public List<Tarefa> lista()
{
    String sql = "select * from tarefas";

    try{
        PreparedStatement prepareStatement = conn.prepareStatement(sql);

        ResultSet resultSet = prepareStatement.executeQuery();

        while(resultSet.next()){
            Tarefa tarefa = new Tarefa();

            tarefa.setId(resultSet.getLong("id"));
            tarefa.setFinalizado(resultSet.getBoolean("finalizado"));
            tarefa.setDescricao(resultSet.getString("descricao"));

            if(resultSet.getDate("data_finalizacao") != null){
                Calendar calendar = Calendar.getInstance();
                calendar.setTime(resultSet.getDate("data_nascimento"));
                tarefa.setDataFinalizacao(calendar);
            }
        }
        prepareStatement.close();
        conn.close();
        return this.tarefas;
    }catch (SQLException e) {
        throw new RuntimeException(e);
    }

}

view

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Tarefa adicionada com sucesso</title>
</head>
<body>

    <a href="formulario"> Novo formulário?</a>

    <br /><br />

    <table>
        <tr>
            <th>ID</th>
            <th>descricao</th>
            <th>finalizado?</th>
            <th>Data de Finalização</th>
        </tr>
        <c:forEach items="${tarefas}" var="tarefa">
        <tr>
            <td>${tarefa.id}</td>
        </tr>
        </c:forEach>
    </table>
</body>
</html>
2 respostas
solução!

Fala ai Dayson, tudo bem ?

Supondo que seu Dao esteja correto, você se esqueceu de fazer um detalhe muito importante.

Você está percorrendo a lista que você busca do banco e criando objetos para cada linha, de maneira correta, contudo em nenhum momento você adiciona esses objetos recuperados para a listagem que você retorna no fim do seu método.

Imagino que seja apenas corrigir isto e deva tudo funcionar.

Outra coisa que eu te sugiro a fazer, são os cursos de Spring MVC aqui da Alura, lá a gente deixa o Spring cuidar da parte de conexão com o banco de dados e o mais legal, é de forma programática. hahah

Espero ter ajudado.

Abraços

Ok Matheus consegui!

Pelo visto, ele estava retornando o objeto nulo, porque não adicionei ele. rsrs

Spring MVC será meu proximo passo, estou seguindo a trilha de JavaWeb da Alura;

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software