5
respostas

Está dando erro no campo data

Essa é a div:

        <div class="input-field col s12">
                            <input id="dataNascimento" type="date" class="datepicker" th:field="*{dataNascimento}"   />
                              <label for="dataNascimento">Dt. Nascimento</label>
                        </div>

Esse é o erro:

Field error in object 'aluno' on field 'dataNascimento': rejected value [2017-07-13]; 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 '2017-07-13'; nested exception is java.lang.IllegalArgumentException]
5 respostas

Olá.

Em qual momento esse erro é lançado?

O erro está indicando um parse errado do Date para String

No momento em que tento gravar as informações digitadas na tela.

Como visto no curso, temos várias camadas até o dado sair da tela até chegar no banco. Seja mais especifico para a gente tentar te ajudar.

Tive o mesmo erro, corrigi utilizando um initBinder:

    @InitBinder
    public void initBinder(WebDataBinder binder) {
    binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), true));
    }

Tem um jeito um pouco mais simples. Pode anotar o atributo Date da seguinte forma:

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date dataNascimento;