问题:接触过web的都知道,前端的form表单传给后台的数据类型都是字符串,如果空着则为空字符串'',而不是null,那么问 题来了,当后台的字段类型是java.lang.Date类型的数据的时候,我们应该如何对他进行转换类型,SpringMvc能对简单 类型的数据进行自动类型转换,但显然这并不包括java.lang.Date类型。还有一个问题便是:如何把java.lang.Date类型 的数据在前端页面根据自己想要的格式进行格式化显示。
解决方法:
1.类型转换:
如上图所示,我这里用的是java.lang.Date类型的数据,在想要转换类型的字段加上注解
@DateTimeFormat(pattern="想转换成的格式"),还需要注意的是,想要这个注解生效的话,还需要引入一个
joda-time- 2.1.jar 的jar包 (可以上百度搜,在网上下载这个jar包)。这时只要前端传回的数据格式和你定义的格式 一 样的话,那么会自动进行类型转换。
2.前端格式化显示时间类型的数据
这里给出两种显示方式。注意需要在前端页面引入<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
一种是只需要显示数据,而不需要对数据进行修改的显示方式:
<fmt:formatDate value="${b.pressDate}" type="date" pattern="yyyy/MM/dd"/>
其中${b.pressDate}是EL表达式,具体的数据根据自己的项目进行修改。
pattern则是对数据进行的格式进行定义,根据需要进行修改。
type则不需要进行修改,同这里一样即可。
另一种是把数据显示在一个input标签中,可以对数据进行修改的:
<input type="text" name="lowPressDate" size="20" placeholder="区间查询(注意格式)" value="<fmt:formatDate value='${query.lowPressDate }' type='date' pattern='yyyy/MM/dd'/>"/>
这里需要提一下就是name属性,这个是用来传输数据,具体可以百度SpringMvc form表单传输数据。
这篇文章均是本人自己码出来的,如有雷同,纯属巧合。