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

Erro 404 ao enviar formulario

Boa noite,

estou com esse erro bobo mas não consigo resolver.

segue meu formulário:

<form action="/rprvidros/orcamentos" method="post">
                    <div class="container">
                        <h1 class="titulo-orcamento">Peça um Orçamento!</h1>
                            <div class="email-nome">
                                <span class="icon-user2"></span>
                                <label>
                                    <input class="nome-orcamento" type="text" name="nome" placeholder="Nome Completo" autofocus required>
                                </label>
                            </div>

                            <div class="email-email">    
                                <span class="icon-email"></span>
                                <label>
                                    <input class="email-orcamento" type="email" name="email" placeholder="Email" required />
                                </label>
                            </div>

                            <div class="email-telefone">
                                <span class="icon-phone2"></span>
                                <label>
                                    <input class="telefone-orcamento" type="text" name="telefone" placeholder="Telefone com DDD" required />
                                </label>
                            </div>    

                            <div class="email-mensagem">
                                <span class="icon-comment2"></span>
                                <label>
                                    <input class="telefone-orcamento" type="text" name="mensagem" placeholder="mensagem" required>
                                </label>
                            </div>

                            <div class="enviar-orcamento">
                                <span class="icon-email2"></span>
                                <button class="botao-orcamento" type="submit">
                                    Enviar
                                </button>
                            </div>
                            <input type="hidden" name="${_csrf.parameterName }" value="${_csrf.token }" />
                        </div>
                    </form>

meu controller:

@Controller
public class OrcamentoController {

    @RequestMapping("/orcamentos")
    public ModelAndView orcamento(Orcamento orcamento) {
        SimpleMailMessage email = new SimpleMailMessage();
        email.setSubject("Requisição de Orçamento");
        email.setTo("gabriel_@bartholo_batista@hotmail.com");
        email.setText(orcamento.getMensagem());
        email.setFrom(orcamento.getEmail());
        System.out.println("teste");
        return new ModelAndView("/rprvidros");
    }

}

um coisa estranha, fiz vários teste criei um controller de teste apenas e coloquei um botão para direcionar para ele e também da o erro 404

controller teste:

@Controller
@RequestMapping("/teste")
public class Teste {

    public String teste(){
        return "/teste";
    }
}

botão:

<form action="/rprvidros/teste">
                    <button type="submit">teste</button>
                </form>

sempre o mesmo erro obrigado.

3 respostas

Oi Gabriel, tudo bom?

Acredito que o problema esteja no mapeamento das rotas do seu controller Teste. Pela rota:

/rprvidros/teste

Estamos acessando o controller rprvidros na action teste. Algo como:

@Controller
@RequestMapping("/rprvidros") // todas as rotas desse controller agora tem o prefixo rprvidros
public class Teste {
    @RequestMapping("/teste")
    public String teste(){
        return "/teste"; // só lembrando que aqui devemos retornar uma view, não uma rota!
    }
}

Olá Andre tudo bem e vc ?

Acredito que não seja, pois, o rprvidros é no nome do meu projeto, eu tenho vários controllers que apenas coloco o nome após do contexto rprvidros e funciona normalmente.

Iinclusive o formulário que não chega no meu controller orcamentos eu tirei todo o formulário de dentro e só fiz a request, por achar q o Spring não está conseguindo fazer o Bind do objeto e mesmo assim ele não acha .

Também usei o HttpServletRequest para fazer o bind manualmente e mesmo assim nada, tem algum teste que eu possa fazer para poder achar o erro? pois ele não me mostra nada no console.

obrigado.

solução!

descobri o erro obrigado.