1
resposta

Mensagem de campo vazio não está sendo preenchida

Boa tarde.

Estou usando o therrorclass como mencionado na aula, porém não está aparecendo as mensagem que configurei.

<html>
<head>
<meta charset="UTF-8" />
<link rel="stylesheet"
    href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css"
    integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2"
    crossorigin="anonymous">
</head>
<body>

    <div class="container">
        <div class="jumbotron jumbotron-fluid mb-0">
            <h1 class="display-4">Novo pedido</h1>
        </div>

        <div class="card mt-3">
            <form th:object="${requisicaoNovoPedido}" class="card-body"
                action="/pedido/novo" method="POST">
                <div class="form-group">
                    <label for="nomeProduto">Produto</label> <input
                        th:field="*{nomeProduto}" th:errorclass="is-invalid"
                        class="form-control" placeholder="Preencha o nome do produto" />
                    <small>Informe o nome do produto</small>
                </div>
                <div class="invalid-feedback" th:errors="*{nomeProduto}">Erros
                    no nome do produto</div>
                <div class="form-group">
                    <label for="urlProduto">URL</label> <input th:field="*{urlProduto}"
                        th:errorclass="is-invalid" class="form-control"
                        placeholder="URL do produto" /> <small>Informe a URL do
                        produto</small>
                </div>
                <div class="invalid-feedback" th:errors="*{urlProduto}">Erros
                    na url do produto</div>
                <div class="form-group">
                    <label for="urlImagem">IMAGEM</label> <input
                        th:field="*{urlImagem}" th:errorclass="is-invalid"
                        class="form-control" placeholder="Url da imagem deste produto" />
                    <small>Informe uma URL deste produto</small>
                </div>
                <div class="invalid-feedback" th:errors="*{urlImagem}">Erros
                    na url da imagem</div>
                <div class="form-group">
                    <label for="descricao">Descrição</label>
                    <textarea th:field="*{descricao}"
                        placeholder="Preencha uma breve descrição">
                        </textarea>
                </div>
                <div th:errors="*{descricao}">Erros na descrição</div>
                <button class="btn btn-primary" type="submit">Cadastrar</button>
            </form>
        </div>

    </div>
</html>
NotBlank.requisicaoNovoPedido.nomeProduto=O campo nome do produto é obrigatório

Poderiam me ajudar?

Obrigado.

1 resposta

Seu arquivo chama messages.properties?

Em RequisicaoNovoPedido você colocou a anotação @NotBlank?

package br.com.alura.mvc.mudi.dto;

import javax.validation.constraints.NotBlank;

import br.com.alura.mvc.mudi.model.Pedido;

public class RequisicaoNovoPedido {

    @NotBlank //NotBlank.requisicaoNovoPedido.nomeProduto=não pode estar em branco
    private String nomeProduto;

    @NotBlank
    private String urlProduto;

    @NotBlank
    private String urlImagem;
    private String descricao;

    public String getNomeProduto() {
        return nomeProduto;
    }
    public void setNomeProduto(String nomeProduto) {
        this.nomeProduto = nomeProduto;
    }
    public String getUrlProduto() {
        return urlProduto;
    }
    public void setUrlProduto(String urlProduto) {
        this.urlProduto = urlProduto;
    }
    public String getUrlImagem() {
        return urlImagem;
    }
    public void setUrlImagem(String urlImagem) {
        this.urlImagem = urlImagem;
    }
    public String getDescricao() {
        return descricao;
    }
    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }
    public Pedido toPedido() {
        Pedido pedido = new Pedido();
        pedido.setDescricao(descricao);
        pedido.setNomeProduto(nomeProduto);
        pedido.setUrlImagem(urlImagem);
        pedido.setUrlProduto(urlProduto);
        return pedido;
    }


}