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!