1
resposta

Validação de uma segundo entidade

Tenho um forms de Aluno, onde o aluno poussi um endereço (Uma classe) que está mapeado assim:

@ManyToOne(cascade = CascadeType.ALL)
    private Endereco endereco = new Endereco();

e no forms assim:

<div class="form-group col-md-3">
                            <label for="endereco.cep">CEP</label> <input type="text"
                                class="form-control" th:field="*{endereco.cep}"
                                 th:errorclass="is-invalid"
                                placeholder="CEP">
                                <div class="invalid-feedback" th:errors="*{endereco.cep}"></div>
    </div>

Dentro da classe Endereço o CEP está com @NotBlank:

@NotBlank
    public String cep;

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Aqui um exemplo que etinia está validando, pois ela é da classe aluno...

Porém ao acessar meu formulario o mesmo não retorna a mensagem e o erro no input. Alguma ideia de como ajustar?

1 resposta

Olá Adler, tudo bem?

Pelo que entendi, você está tendo problemas para validar o campo CEP do endereço do aluno no formulário. Verifiquei que você já adicionou a anotação @NotBlank na classe Endereço, o que é um bom começo.

No entanto, é importante lembrar que, para que a validação seja realizada corretamente, é necessário que a classe Aluno também esteja sendo validada. Você pode fazer isso adicionando a anotação @Valid no atributo "endereco" da classe Aluno, como no exemplo abaixo:

@ManyToOne(cascade = CascadeType.ALL)
@Valid
private Endereco endereco = new Endereco();

Além disso, certifique-se de que você está utilizando a tag th:object no formulário para referenciar o objeto Aluno, como no exemplo abaixo:

<form th:object="${aluno}" method="post">

Dessa forma, o Thymeleaf irá realizar a validação do objeto Aluno e, consequentemente, do objeto Endereco.

Espero ter ajudado e bons estudos!