2
respostas

Erro ao acrescentar o Thymeleaf da aula

Olá Pessoal!

Estou recebendo o erro abaixo logo após acrescentar o último passo da aula.

Caused by: org.attoparser.ParseException: Error during execution of processor 'org.thymeleaf.spring5.processor.SpringInputGeneralFieldTagProcessor' (template: "pedidos/formulario" - line 20, col 13)
    at org.attoparser.MarkupParser.parseDocument(MarkupParser.java:393)
Caused by: java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'requisicaoNovoPedido' available as request attribute
    at org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:153)

Notei que o erro ocorre após colocar nas tags de input o

th:field="*{nomeProduto}"

Alguém poderia me ajudar?

@PostMapping("novo")
    public String novo(@Valid RequisicaoNovoPedido requisicao, BindingResult result) {

        if(result.hasErrors()) {
            return "pedidos/formulario";
        }
        Produto produto = requisicao.toProduto();

        produtoRepository.save(produto);

        return "pedidos/formulario";
    }
<div class="card mt-3">
            <form th:object="${requisicaoNovoPedido}" action="/pedido/novo" method="POST" class="card-body">
                <div class="form-group">
                    <label for="nomeProduto">Produto</label>
                    <input th:field="*{nomeProduto}" class="form-control" placeholder="nome do produto"/>
                    <small class="form-text text-muted">Informe qual é o nome do produto</small>
                </div>
2 respostas

Acho que encontrei o erro pessoal! Na classe PedidoController eu acrescentei a RequisicaoNovoPedido. Dessa forma ao entrar no formulário ele reconhece a requisição que estamos usando no HTML.

@GetMapping("formulario")
    public String formulario(RequisicaoNovoPedido requisicao) {

        return "pedidos/formulario";        
    }

PS: O professor responde isso no próximo vídeo kkkkkk, fiquei quebrando a cabeça antes de ver a próxima aula.

Olá Rafael, tudo bem? Que legal que deu tudo certo! Essas coisas acontecem, isso é para não deixar as aulas muito grandes e cansativas, então essas coisas que ficam incompletas vão sendo resolvidas em aulas futuras.