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.
Ú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.