6
respostas

java.lang.IllegalArgumentException: Mapping not found: cadastraProduto

Prezados, boa tarde.

Estou com esse problema e não observei nenhuma solução postada aqui.

@Controller
@RequestMapping("/produto")
public class ProdutoController {

    @Autowired
    private ProdutoDao produtoDao;

    @Transactional
    @RequestMapping(method=RequestMethod.POST, name="cadastraProduto")
    public String cadastraProduto(@ModelAttribute @Valid Produto produto, BindingResult result, RedirectAttributes atts) {

        if(result.hasErrors()) {
            return form(produto);
        }

        produtoDao.insere(produto);

        return "redirect:/";
    }

form.jsp <c:import url="../template/top.jsp" />

Novo produto
    <div class="panel-body">
        <form action="${spring:mvcUrl('cadastraProduto').build()}" method="post">
6 respostas

Dirley,

Acho que você esqueceu de chamar a classe

<form action="${spring:mvcUrl('PC#cadastraProduto').build()}" method="post">

Onde esse PC é ProdutoController, ai no caso você substitui pelas iniciais da sua classe

Veja se resolve

Abraço!

Otávio, boa noite.

Repare que eu já fiz isso, inclusive já enviei o código , com PC# e sem PC# e o erro permanece. Tem mais alguma outra sugestão?

Oi Dirley, boa noite, tudo bem? Desculpe, só encontrei sem o PC#

O código me parece correto, o que me leva a pensar que possa ser os diretórios. Valida se o seu projeto está com a hierarquia:

src
|- main
    |- java
        |-br.com.caelum
            |- controller
                |- ProdutoController.java
            Configurador.java
    |- webapp
        |- WEB-INF
            |- views
                |- produto
                    form.jsp
            web.xml
<form action="/projeto-jpa-2/cadastraPoduto" method="post">

Otávio, boa noite.

Assim como um outro aluno relatou no forum, só funcionou quando mapeamos a url de forma direta. Não funcionou de jeito nenhum da forma anterior, com os fontes originais.

O seu projeto está usando spring security?

Otávio, boa noite.

Não sei se tenho conhecimento para saber se estou usando SS sem ter configurado nada a respeito. A não ser que me diga que isso não dependa de mim. Então, eu diria que a resposta é não. Não estou usando.

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