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

HTTP Status 400 - The request sent by the client was syntactically incorrec

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;
    }
}


2 respostas

Oi Welington, tudo bem?

Alguma informação do request do seu formulário está inválido. Você está colocando o preço com " , " ou " . " ?

solução!

Oi Otávio! Obrigado pelo retorno! E não é que era? (vírgula)

Que coisa não? Erro básico mas não me liguei, a mensagem de erro não ajudou também. O DAO não era acionado, porque coloquei um syso nele para saber se os dados chegavam e nada, ele travava logo no submit, então nem imaginei que era erro de conversão.

Já vi esse problema há muito tempo atrás, quando desenvolvia em Struts, mas depois fui pro JSF e não tive mais esse problema.

Valeu!!! Muito obrigado!!!