Bom dia!
Estou com esse problema desde a aula 4 onde , ao invés de colocar @RequestMapping("produtos/...") em cima de cada método, colocamos @RequestMapping("produtos") em cima de class...
Simplesmente não funciona, e após a aula 5 (usando redirect) nem voltando o jeito inicial... Como desconfiei que talvez tivesse digitado algo errado no controller, baixei a classe do site e substitui a minha, mas mesmo assim deu o mesmo problema.
O que poderia ser? Fiquei sem ideia...
Isso acontece após eu dar um gravar no formulário, creio que seja um erro de request porque nem o dao chega a chamar (pus um syso lá pra confirmar).
Deve ser simples de resolver, mas não sei o que é, se puderem me ajudar, agradeço.
package br.com.casadocodigo.loja.controllers;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import br.com.casadocodigo.loja.daos.ProdutoDAO;
import br.com.casadocodigo.loja.modelos.Produto;
import br.com.casadocodigo.loja.modelos.TipoPreco;
@Controller
@RequestMapping("produtos")
public class ProdutosController {
@Autowired
private ProdutoDAO dao;
@RequestMapping("/form")
public ModelAndView form() {
ModelAndView modelAndView = new ModelAndView("produtos/form");
modelAndView.addObject("tipos", TipoPreco.values());
return modelAndView;
}
@RequestMapping(method=RequestMethod.POST)
public ModelAndView gravar(Produto produto, RedirectAttributes redirectAttributes){
System.out.println(produto);
dao.gravar(produto);
redirectAttributes.addFlashAttribute("sucesso", "Produto cadastrado com sucesso!");
return new ModelAndView("redirect:produtos");
}
@RequestMapping( method=RequestMethod.GET)
public ModelAndView listar() {
List<Produto> produtos = dao.listar();
ModelAndView modelAndView = new ModelAndView("produtos/lista");
modelAndView.addObject("produtos", produtos);
return modelAndView;
}
}