1
resposta

Tratandoo BindingResult somente no backend

Na aula foi mostrado que com o BindingResult conseguimos saber se há erros de validações na requisição, e tratamos retorando novamente para o formulário de pedido, porém se eu quiser saber qual campo deu erro na validação e fazer uma validação diferente do que somente retornar uma mensagem, eu consigo isso?

Digo isso pensando na validação dos campos quando estiver desenvolvendo uma APi, onde somente estou trabalhando com o back end.

1 resposta

Olá, Guilherme!

Sim, é possível tratar o BindingResult no backend para saber qual campo deu erro na validação e fazer uma validação diferente do que somente retornar uma mensagem.

O BindingResult é uma classe que contém informações sobre o resultado da validação de um objeto, e pode ser utilizado para realizar diversas ações, como por exemplo, verificar qual campo deu erro na validação e realizar uma validação diferente para esse campo.

Para isso, você pode utilizar os métodos do BindingResult, como por exemplo, o método getFieldErrors(), que retorna uma lista com os erros de validação de cada campo. Com essa lista, você pode percorrer os erros e realizar a validação específica para cada campo.

Aqui está um exemplo de como você pode utilizar o BindingResult para realizar uma validação específica para o campo "nome":

@PostMapping("/exemplo")
public String exemplo(@Valid Exemplo exemplo, BindingResult result) {
   if (result.hasErrors()) {
      List<FieldError> errors = result.getFieldErrors();
      for (FieldError error : errors ) {
         if (error.getField().equals("nome")) {
            // Realiza a validação específica para o campo "nome"
            // ...
         }
      }
      return "formulario";
   }
   // ...
}

Espero ter ajudado e bons estudos!