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

Erro de redirecionamento VRaptor3

Segui o passo-a-passo desta aula, quando preencho o formulário e o submeto recebo um erro 404. Alguém pode me ajudar?

Segue o meu código

formulário.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Cadastro Novo Produto</title>
</head>
<body>
    <form action="adiciona" method="post">
        Nome: <input type="text" name="produto.nome" /> Descrição: <input
            type="text" name="produto.descricao" /> Preço: <input type="text"
            name="produto.preco" /> <input type="submit" value="Salvar produto" />
    </form>
</body>
</html>

ProdutoController.java

package br.com.caelum.online.loja.controlador;

import java.util.List;

import br.com.caelum.online.loja.dao.ProdutoDao;
import br.com.caelum.online.loja.dominio.Produto;
import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.Post;
import br.com.caelum.vraptor.Resource;

@Resource
public class ProdutoController {

    private final ProdutoDao produtos;

    public ProdutoController() {
        this.produtos = new ProdutoDao();
    }

    @Path("/lista")
    public List<Produto> lista() {
        return produtos.pegaTodos();
    }

    @Path("/produto/{id}")
    public Produto exibe(long id) {
        return produtos.pegaPorId(id);
    }

    @Path("/formulario")
    public void formulario() {}

    @Post
    public void adiciona(Produto produto) {
        System.out.println("Chegou no método adiciona");
        System.out.println(produto);
        produtos.salva(produto);

    }
}
2 respostas
solução!

A action do formulário deve ser:

action="<c:url value="/produto/adiciona"/>"

Na resposta do exercício estava errado, mas já fiz o ajuste.

Veja se funciona.

Funcionou perfeitamente rodrigo-ferreira, obrigado! Estou com outro problema na proxíma aula, se puder me ajudar agradeço

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