Spring MVC, Formato de data ou data e hora ao fazer submit em formulário

Em algumas situações, é necessário enviar a data e hora em um formato específico para um objeto ao fazer o envio dos dados de um formulário.

Wolmir Cezer Garbin por Wolmir Cezer Garbin - - Java - TUTORIAL

Última atualização em: | 18589 Visualizações

Este formato deve ser convertido no objeto java.util.Date o qual neste caso é um atributo de uma classe de persistência ou apenas uma classe para receber os valores do formulário, utilizado com o spring mvc.

A solução é um tanto simples de ser implementada, vejamos o exemplo onde existe a classe MeuObjeto que será populada com os dados enviados de um formulário html normal. Vejamos a classe:

import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
 
public class MeuObjeto {
 
    @DateTimeFormat(pattern = "dd/MM/yyyy")
    private Date data;
 
    @DateTimeFormat(pattern = "dd/MM/yyyy HH:mm")
    private Date dataHora;
 
    ... getter e setter's
 
}

O HTML com o formulário para o exemplo é o seguinte:

<form action="/teste" method="post">
    <input name="data" id="data" type="text">
    <input name="dataHora" id="dataHora" type="text">
        <input value="Enviar" type="submit">
</form>

E no controller temos o seguinte:

@RequestMapping(value = "/teste", ... )
public String teste(MeuObjeto obj) {
    return "teste";
}

Estes são os códigos que demonstram como realizar a conversão de data e hora com spring mvc utilizando a anotação DateTimeFormat do spring framework.

Basta passar qual será o padrão enviado pelo formulário e que o spring utilizará este padrão para realizar a conversão dos dados, adicionando dessa forma a data no objeto corretamente.

Não esqueca de deixar suas dúvidas nos comentários e compartilhar este post.


Apoiadores

Publique seu post no Receitas de Código

Aguarde, estamos trabalhando para que você possa publicar sua postagem no Receitas de Código!