3
respostas

Aula 04 Listar contas

Já assisti e revi a aula várias vezes, porém não consigo entender onde está o erro. Não consigo ver a listagem das contas, erro 404 Minha controller e minha view do listar estão ai em baixo.

Eu recebo o seguinte erro:

HTTP Status 404 - /contas/WEB-INF/views/listaContas.jsp

description The requested resource is not available.

Estou usando a pasta conta/lista conforme foi pedido.

package br.com.caelum.contas.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.portlet.ModelAndView;
import java.util.List;

import br.com.caelum.contas.dao.ContaDAO;
import br.com.caelum.contas.modelo.Conta;

@Controller
public class ContaController {

    @RequestMapping("/form")
    public String formulario(){
        return "formulario";
    }

    @RequestMapping("/adicionaConta")
    public String adiciona(Conta conta) {
        System.out.println("Conta adicionada e: " + conta.getDescricao());
        ContaDAO dao = new ContaDAO();
        dao.adiciona(conta);
        return "conta/conta-adicionada";
    }

    @RequestMapping("/listaContas")
    public ModelAndView lista() {
        ContaDAO dao = new ContaDAO();
        List<Conta> contas = dao.lista();
        System.out.println("Total de contas = " + contas.size());

        ModelAndView mv = new ModelAndView("conta/lista");
        mv.addObject("todasContas", contas);
        return mv;
    }
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<!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>Insert title here</title>
</head>
<body>

    <table>
        <tr>
            <th>Código</th>
            <th>Descrição</th>
            <th>Valor</th>
            <th>Tipo</th>
            <th>Pago?</th>
            <th>Data de pagamento</th>
            <th>Valor</th>
        </tr>
        <c:forEach items="${todasContas}" var="conta">
            <tr>
                <td>${conta.id}</td>
                <td>${conta.descricao}</td>
                <td>${conta.valor}</td>
                <td>${conta.tipo}</td>
                <td>
                    <c:if test="${conta.paga eq false}">
                    Não está paga!
                    </c:if>
                    <c:if test="${conta.paga eq true}">
                    Conta paga!
                    </c:if>
                </td>
                <td><fmt:formatDate value="${conta.dataPagamento.time}" pattern="dd/MM/yyyy"/></td>
            </tr>
        </c:forEach>
    </table>

</body>
</html>
3 respostas

Boa noite Lucas, nesse caso:

ModelAndView mv = new ModelAndView("conta/lista");

o Spring vai procurar por uma jsp chamada lista.jsp dentro de uma pasta conta, sua estrutura está assim?

Sim, minha estrutura está assim.

Boa Tarde. O mesmo erro tinha acontecido comigo e para ajudar quem precisar ainda irei postar a solução que encontrei: Percebi que foi um erro de import.

Ao invés de utilizar o import: import org.springframework.web.portlet.ModelAndView;

Utilizar o import: import org.springframework.web.servlet.ModelAndView