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

Estou com dúvida no curso de Desenvolvendo aplicações Web com Spring MVC, no exercício do capítulo Redirecionando requisições.

Estou com um problema, ele não está passando o id para controller, alguma ideia?

 package br.com.caelum.contas.controller;

import java.util.List;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

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


@Controller
public class ContaController {


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

    @RequestMapping("adicionaConta")
    public String adcionaConta(Conta conta){

        ContaDAO contaDAO = new ContaDAO();
        contaDAO.adiciona(conta);

        return "conta/contaAdicionada";
    }


//    @RequestMapping("listaContas")
//    public ModelAndView lista(){
//        
//        ContaDAO contaDAO = new ContaDAO();
//        List<Conta> lista = contaDAO.lista();
//        
//        
//        ModelAndView  modelAndView = new ModelAndView("conta/lista");
//        modelAndView.addObject("listaContas", lista);
//        
//        return modelAndView;
//    }

    @RequestMapping("/removeConta")
    public String remove(Conta conta) {
      ContaDAO dao = new ContaDAO();
      dao.remove(conta);
      return "forward:listaContas";
    }




    @RequestMapping("/listaContas")
    public String lista(Model mv) {
      ContaDAO dao = new ContaDAO();
      List<Conta> contas = dao.lista();

      mv.addAttribute("listaContas", contas);
      return "conta/lista";
    }

}

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<body>
    <table style="height: 10px; width: 775px;" border="1">
        <tr>
        <th>Código</th>
        <th>Descrição</th>
        <th>Valor</th>
        <th>Tipo</th>
        <th>Paga?</th>
        <th>Data de pagamento</th>
        <th>Ação</th>
        </tr>

        <c:forEach items="${listaContas}" var="conta">
        <tr>
            <td>${conta.id}</td>
            <td>${conta.descricao}</td>
            <td>${conta.valor}</td>
            <td>${conta.tipo}</td>
            <td id="tarefa_${conta.id}">
            <c:if test="${conta.paga eq false}">
            Não paga
            </c:if>
            <c:if test="${conta.paga eq true }">
            Paga!
            </c:if>
            </td>
            <td><fmt:formatDate value="${conta.dataPagamento.time}" pattern="dd/MM/yyyy"/></td>
            <td><a href="removeConta?conta.id=${conta.id}">Deleta</a> </td>
        </tr>     
        </c:forEach>
    </table>

</body>
</html>
3 respostas
solução!

Oi Donald,

Você precisa passar somente ?id=. Veja que você colocou ?conta.id=.

O Spring não é lá tão inteligente assim, né!?

hum, estarei fazendo o acerto a noite e posto o resultado, mas acho que deva ser isso mesmo;

No Material está assim:

Remover

Resolveu o problema.

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