Fui seguindo o código e reparei que toda vez que tentava salvar um aluno, recebia o seguinte erro:
Mon Sep 28 19:49:37 BRT 2020
There was an unexpected error (type=Bad Request, status=400).
Validation failed for object='aluno'. Error count: 1
org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 1 errors
Field error in object 'aluno' on field 'dataNascimento': rejected value [2001-11-01]; codes [typeMismatch.aluno.dataNascimento,typeMismatch.dataNascimento,typeMismatch.java.util.Date,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [aluno.dataNascimento,dataNascimento]; arguments []; default message [dataNascimento]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for property 'dataNascimento'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [java.util.Date] for value '2001-11-01'; nested exception is java.lang.IllegalArgumentException]
Meu código está da seguinte forma:
@GetMapping("/aluno/cadastrar")
public String cadastrar(Model model){
model.addAttribute("aluno",new Aluno());
return "aluno/cadastrar";
}
@PostMapping("/aluno/salvar")
public String salvar(@ModelAttribute Aluno aluno){
System.out.println("Aluno para salvar: " + aluno);
return "redirect:/";
}
<div class="row">
<div class="input-field col s12">
<input id="dataNascimento" type="date" class="datepicker" th:field="*{dataNascimento}" />
<label for="dataNascimento">Dt. Nascimento</label>
</div>
</div>
Field error in object 'aluno' on field 'dataNascimento': rejected value [2001-11-01]; codes [typeMismatch.aluno.dataNascimento,typeMismatch.dataNascimento,typeMismatch.java.util.Date,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [aluno.dataNascimento,dataNascimento];
Após pesquisar na internet a solução que encontrei para resolver esse problema foi usar uma anotação no campo DataNascimento definido na classe Aluno.java
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date dataNascimento;
Talvez seja o caso de atualizar o código da classe aluno para contemplar essa anotação, pois sem ela não consegui avançar.
Obrigado.