A verificação da existência de erros na validação é feita assim:
if(result.hasErrors()){
return form();
}
Só que ao entrar no if e retornar o método form() a url é alterada de http://localhost:8080/casadocodigo/produtos/form para http://localhost:8080/casadocodigo/produtos
Tentei mudar para:
if(result.hasErrors()){
return new ModelAndView("redirect:produtos/form");
}
A url permanece http://localhost:8080/casadocodigo/produtos/form mas as mensagens de erro não aparecem mais......