*本例程序使用Jackson2.9.0,jackson1.x的处理方式稍稍有些不同。

在基于Spring&SpringMVC的Web项目中,我们常使用Jackson(1.x/2.x)来增加程序对Json格式的数据的支持。

因此,在实际应用中有个常见的需求:日期的格式化。

假设,User对象有个Date类型的属性birthday:

class User implements Serializable {private Date birthday;//...
}

程序支持如下api请求,而我们希望在返回Json格式的User资料时,对Date类型的birthday进行一下格式化。

@Controller
class UserAction {@RequestMapping("/user/find/{id}")public @ResponseBody User getUserById(@PathVariable("id") int id) {return userService.getUserById(id);}
}

实现上述需求大体有两种常用的方式:

1.使用@JsonFormat注解

该方法只需在关键字段加上@JsonFormat注解即可,如下:

class User implements Serializable {@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")private Date birthday;//...
}

参数解释:pattern - 格式,timezone - 时区

2.设置MappingJackson2HttpMessageConverter的objectMapper

该方法主要对json数据转换时用到的HttpMessageConverter进行一些设置,进一步讲就是objectMapper在对日期类型数据序列化时设置成统一的pattern,配置如下:

<mvc:annotation-driven><mvc:message-converters><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></bean></property></bean></mvc:message-converters>
</mvc:annotation-driven>

或者:

<bean id="objectMapper" class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean"><property name="simpleDateFormat" value="yyyy-MM-dd HH:mm:ss" />
</bean><mvc:annotation-driven><mvc:message-converters><bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"><property name="objectMapper" ref="objectMapper" /></bean></mvc:message-converters>
</mvc:annotation-driven>

方法1使用起来方便灵活,但如果有大量需要统一设置的字段属性,那么推荐使用方法2。或者两种方法混合使用,作用优先级:方法1 > 方法2。

转载于:https://www.cnblogs.com/lichmama/p/7867273.html

SpringMVC在使用Jackson2时关于日期类型格式化的问题相关推荐

  1. Date日期类型的绑定

    自定义类型的绑定 springmvc没有提供默认的对日期类型的绑定,需要自定义日期类型的绑定 第一张图是po类中日期属性,第二张图是页面中日期属性的内容,第三张图片是访问出现400错误 因为日期的格式 ...

  2. java 自定义 转换器_Java笔记之SpringMVC(七):自定义String到Date的类型转换器

    0.说在前面 1.新建converter.jsp 转换器页面 日期: 提交 ${converteredDate } 2.新建ConverterController类 packagecom.spring ...

  3. springMVC注解@initbinder日期类型的属性自动转换

    在实际操作中经常会碰到表单中的日期 字符串和Javabean中的日期类型的属性自动转换, 而springMVC默认不支持这个格式的转换,所以必须要手动配置, 自定义数据类型的绑定才能实现这个功能. 一 ...

  4. SpringMVC对日期类型的转换

    在做web开发的时候,页面传入的都是String类型,SpringMVC可以对一些基本的类型进行转换,但是对于日期类的转换可能就需要我们配置. 1.如果查询类使我们自己写,那么在属性前面加上@Date ...

  5. mysql 建表 日期格式_MySQL建表时,日期时间类型选择

    MySQL(5.5)所支持的日期时间类型有:DATETIME. TIMESTAMP.DATE.TIME.YEAR. 几种类型比较如下: 日期时间类型 占用空间 日期格式 最小值 最大值 零值表示 DA ...

  6. 后端的日期类型赋值前端表单_Spring Boot实践--前端字符串日期自动转换成后台date类型。...

    简单介绍 在前后台开发的时候:日期格式会转来转去,很麻烦.大致总结如下: 1:后端返回对象:可以使用spring提供的:HttpMessageConverter来自动转换,有很多实现. 比如:Abst ...

  7. 06_03_SpringMVC 任务一: SpringMVC基本应用(SpringMVC请求与响应,进行日期转换工具类DateConverter)

    任务一: SpringMVC基本应用 课程任务主要内容: SpringMVC简介 SpringMVC组件概述 SpringMVC请求 SpringMVC响应 静态资源开启 一 SpringMVC简介 ...

  8. 解决:sql中将日期字符串当做日期类型处理

    敲机房中看着同期的人的博客,学习存储过程的使用,在查询记录和金额查询这里,拥有共同的窗体,所以自己就使用了模板方法+存储过程!查询日期的过程让我遇到了问题. 在实体中声明了3个字段,分别是数据表,起始 ...

  9. SQLite 日期类型(转)

    SQLite日期类型 简单示例: SELECT     datetime(CHANGE_DATE,'localtime'),     strftime('%Y-%m-%d',CHANGE_DATE,' ...

最新文章

  1. 4.5 matlab三维曲面(mesh、fmesh、meshc、meshz、surf、fsurf、surfc、surfl)
  2. YARN环境搭建 之 一:CentOS7.0系统配置
  3. 谈谈你对MVC和三层架构的理解?(月薪三万的面试题)
  4. [Jarvis OJ - PWN]——Test Your Memory
  5. 如何查看一个现有的keil工程之前由什么版本的keil IDE编译
  6. Java的静态域以及封装性相关
  7. maya怎么贴膜_maya怎么渲染成白膜?
  8. c语言米粒数实验报告,《單片机C程序设计》实验报告.doc
  9. AirSim学习日志 5-LQR实现无人机轨迹跟踪
  10. 手把手带你从零开始完整开发经典游戏【俄罗斯方块】,全部逻辑只用不到200行代码。
  11. 地铁FAS设备组成及系统结构
  12. redis源码分析(2)——事件循环
  13. 计算机语言可读性排名,计算机语言可读性强,容易记忆
  14. capacity和capability的区别
  15. Processing笔记05—贪吃蛇小游戏
  16. 你应该会的一道多线程笔试题
  17. Lammps安装教程 windows版
  18. MATLAB(矩阵基本运算)
  19. 原型法, 瀑布模型, V-模型, 螺旋模型
  20. 【3dsMax】如何用VSocde写最简单的MaxScript脚本

热门文章

  1. 【HDU - 6231】K-th Number(二分,思维)
  2. 计算机视觉那些事儿(1):基本任务
  3. 2.Building Models from Convolutions
  4. php测试插入,php – 使用Symfony测试数据库插入
  5. 伺服电机停的时候会冲一下_造成伺服电机抖动的原因竟然是它!内附解决方法...
  6. stm32linux区别,STM32MPU和OpenSTLinux你了解多少?
  7. matlab中云模型,云模型简介与个人理解matlab程序.doc
  8. 使用枚举完成学生类,性别的设置。
  9. leetcode374. 猜数字大小
  10. leetcode108 将有序数组转换为二叉搜索树