No curso a validação é feita implementando uma Interface do Spring "Validator" . Usando também o método:
@InitBinder
public void InitBinder(WebDataBinder binder) {
binder.addValidators(new ProdutoValidation());
}
Utilizando somente o método abaixo a validação é feita nas anotações da classe que vai ser persistida no banco, neste caso "Produto". Por exemplo: @NotNull.
Qual o motivo de fazer a validação utilizando a Interface Validator com esse InitBinder?
@RequestMapping(method = RequestMethod.POST)
public ModelAndView grava(@Valid Produto produto, BindingResult bindingResult, RedirectAttributes redirectAttributes) {
if(bindingResult.hasErrors()) {
return form();
}
produtoDAO.gravar(produto);
redirectAttributes.addFlashAttribute("sucesso","Produto cadastrado com sucesso!");
return new ModelAndView("redirect:produtos");
}