Olá, pessoal!
Alguém sabe como ordenar as mensagens de erro do bean validation no Spring MVC? Estou com problema na situação abaixo:
Classe modelo:
@Entity
@SequenceGenerator(name = Cliente.SEQUENCE_NAME, sequenceName = Cliente.SEQUENCE_NAME, allocationSize = 1)
public class Cliente implements Serializable {
private static final long serialVersionUID = 1L;
public static final String SEQUENCE_NAME = "cliente_pkey_seq";
@Id
@GeneratedValue(generator = SEQUENCE_NAME, strategy = GenerationType.SEQUENCE)
private Long codigo;
@Enumerated(EnumType.STRING)
private Nacionalidade nacionalidade;
@NotEmpty(message="Nome do cliente deve ser informado")
@Column(name = "nome_completo", length = 100)
private String nomeCompleto;
@Enumerated(EnumType.STRING)
@NotNull(message="O campo sexo não pode ficar em branco")
@Column(length = 10)
private Sexo sexo;
}
Controller
@Controller
@RequestMapping("/clientes")
public class ClienteController extends DefaultController {
private static final long serialVersionUID = 1L;
private static final String CADASTRO_VIEW = "/clientes/cadastro";
@Autowired
private CadastroClienteService cadastroClienteService;
@RequestMapping(method = RequestMethod.POST)
public ModelAndView salvar(@Validated Cliente cliente, Errors errors, RedirectAttributes attributes) {
ModelAndView mv = new ModelAndView(CADASTRO_VIEW);
if (!errors.hasErrors()) {
cadastroClienteService.salvar(cliente);
attributes.addFlashAttribute("mensagem", "Cliente salvo com sucesso!");
}
return mv;
}
}
Formulário HTML
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorator="layoutPadrao">
<div class="page-header" layout:fragment="pageHeader">
<h3>
<i class="icon icon-users"></i> Clientes
</h3>
</div>
<section layout:fragment="conteudo">
<form method="post" th:action="@{/clientes}" th:object="${cliente}">
<div class="panel panel-default">
<div class="panel-body">
<div class="alert alert-success" th:if="${!#strings.isEmpty(mensagem)}">
<span th:text="${mensagem}">Salvo com sucesso!!!</span>
</div>
<div class="alert alert-danger" th:if="${#fields.hasAnyErrors()}">
<p>Alguns erros foram encontrados, por favor verifique:</p>
<div th:each="detailedError : ${#fields.detailedErrors()}">
<span th:text="${detailedError.message}"></span>
</div>
</div>
<!-- FORMULÁRIO !-->
</div>
</div>
</form>
</section>
</html>
Problema apresentado: Ao submeter o formulário, as mensagem de erro estão aparacendo em ordem aleatória
Exemplo:
Alguns erros foram encontrados, por favor verifique:
Nome do cliente deve ser informado
Data de nascimento deve ser informada
O campo sexo não pode ficar em branco
Alguns erros foram encontrados, por favor verifique:
Data de nascimento deve ser informada
O campo sexo não pode ficar em branco
Nome do cliente deve ser informado
Desde já agradeço a todos que puderem me ajudar de alguma forma