SpringMVC项目如何全局格式日期格式
在我们平时的开发工作中,经常会遇到各种格式的日期类型,为了后端开发方便性,日期类型我们一般不做处理,都保持原有Date类型不变。但是保持了后端方便的同时,却对前端的日期处理产生了一定的难度,因为日期格式不一样,呈现到前端的数据形式也会不一样,而且互联网项目的页面展示窗口比较多,如果分别在单独的页面来重复进行日期格式的格式化,那么无疑是对工作效率的一种浪费。因此我们需要一种将前后端完全隔离,统一格式化后台的Date类型的数据并展现在前端的需要,那么spring的RequestMappingHandlerAdapter中的messageConverters就能够完全满足我们的需求。我们怎么做呢?
具体做法如下:
- -第一步 导入 所需要的jar包,gradle资源如下所列,maven用户自己转一下就行。
compile 'org.codehaus.jackson:jackson-core-asl:1.9.13'
compile 'org.codehaus.jackson:jackson-mapper-asl:1.9.13'
compile 'com.fasterxml.jackson.core:jackson-core:2.4.2'
compile 'com.fasterxml.jackson.core:jackson-databind:2.4.2'
-
第二步 接着 配置spring-servlet
- 引入请求映射器 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter - 加入消息转化器 messageConverters - 引入Json转化器 org.springframework.http.converter.json.MappingJackson2HttpMessageConverter - 实现对象转化器 objectMapper - 日期转换格式定义 dateFormat配置代码如下:
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="webBindingInitializer">
<bean class="com.wlgdo.common.web.WebBindingInitializer">
<property name="conversionService">
<bean class="org.springframework.format.support.FormattingConversionServiceFactoryBean"></bean>
</property>
</bean>
</property>
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter" />
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="objectMapper">
<bean class="com.fasterxml.jackson.databind.ObjectMapper">
<property name="dateFormat">
<bean class="java.text.SimpleDateFormat">
<constructor-arg type="java.lang.String" value="yyyy-MM-dd HH:mm:ss" />
</bean>
</property>
<property name="serializationInclusion">
<!-- 注入枚举类型 -->
<value type="com.fasterxml.jackson.annotation.JsonInclude.Include">NON_NULL</value>
</property>
</bean>
</property>
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
<value>text/plain;charset=UTF-8</value>
<value>text/json;charset=UTF-8</value>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
</list>
</property>
</bean>
至此,各项准备工作就完成了。
启动你的项目,所有的@RestController和@ResponseBody响应资源都会自动将Java对象里面的Date类型转化为你constructor-arg的参数定义的模板形式。
如下图结果:
最后强调一点,使用 MappingJackson2HttpMessageConverter转化对象不能转化Null对象,所以在处理的时候要特别注意以下,避免空对象参与转化。否则会报错,如果后续有改进的方法,我会添加到这里。
分享,记录。温故知新,点滴珍贵。

在SpringMVC项目中,为了简化前后端日期处理,可以通过配置RequestMappingHandlerAdapter的messageConverters实现全局日期格式化。具体步骤包括导入所需jar包,配置spring-servlet.xml,设置日期转换模板。这样,所有@RestController和@ResponseBody返回的Date类型都将自动按指定格式转换。但需要注意,该方法不支持转化Null对象,避免空对象参与转化,否则会导致错误。
1万+

被折叠的 条评论
为什么被折叠?



