Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Spring

Estou tentando excluir uma conta e lá no controller está chegando nulo o id.

segue o codigo

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 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 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"%>

CódigoDescriçãoValorTipoPaga?Data de pagamentoAção
${conta.id}${conta.descricao}${conta.valor}${conta.tipo} Não paga Paga! Remover
1 resposta
solução!

Para que o spring consiga preencher o id da conta, você precisa enviar um parâmetro na requisição chamado id ao invés de conta.id. O seu link deve ficar da seguinte forma: REMOVER -> Remover