SpringMVC在使用Jackson2时关于日期类型格式化的问题
*本例程序使用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时关于日期类型格式化的问题相关推荐
- Date日期类型的绑定
自定义类型的绑定 springmvc没有提供默认的对日期类型的绑定,需要自定义日期类型的绑定 第一张图是po类中日期属性,第二张图是页面中日期属性的内容,第三张图片是访问出现400错误 因为日期的格式 ...
- java 自定义 转换器_Java笔记之SpringMVC(七):自定义String到Date的类型转换器
0.说在前面 1.新建converter.jsp 转换器页面 日期: 提交 ${converteredDate } 2.新建ConverterController类 packagecom.spring ...
- springMVC注解@initbinder日期类型的属性自动转换
在实际操作中经常会碰到表单中的日期 字符串和Javabean中的日期类型的属性自动转换, 而springMVC默认不支持这个格式的转换,所以必须要手动配置, 自定义数据类型的绑定才能实现这个功能. 一 ...
- SpringMVC对日期类型的转换
在做web开发的时候,页面传入的都是String类型,SpringMVC可以对一些基本的类型进行转换,但是对于日期类的转换可能就需要我们配置. 1.如果查询类使我们自己写,那么在属性前面加上@Date ...
- mysql 建表 日期格式_MySQL建表时,日期时间类型选择
MySQL(5.5)所支持的日期时间类型有:DATETIME. TIMESTAMP.DATE.TIME.YEAR. 几种类型比较如下: 日期时间类型 占用空间 日期格式 最小值 最大值 零值表示 DA ...
- 后端的日期类型赋值前端表单_Spring Boot实践--前端字符串日期自动转换成后台date类型。...
简单介绍 在前后台开发的时候:日期格式会转来转去,很麻烦.大致总结如下: 1:后端返回对象:可以使用spring提供的:HttpMessageConverter来自动转换,有很多实现. 比如:Abst ...
- 06_03_SpringMVC 任务一: SpringMVC基本应用(SpringMVC请求与响应,进行日期转换工具类DateConverter)
任务一: SpringMVC基本应用 课程任务主要内容: SpringMVC简介 SpringMVC组件概述 SpringMVC请求 SpringMVC响应 静态资源开启 一 SpringMVC简介 ...
- 解决:sql中将日期字符串当做日期类型处理
敲机房中看着同期的人的博客,学习存储过程的使用,在查询记录和金额查询这里,拥有共同的窗体,所以自己就使用了模板方法+存储过程!查询日期的过程让我遇到了问题. 在实体中声明了3个字段,分别是数据表,起始 ...
- SQLite 日期类型(转)
SQLite日期类型 简单示例: SELECT datetime(CHANGE_DATE,'localtime'), strftime('%Y-%m-%d',CHANGE_DATE,' ...
最新文章
- 4.5 matlab三维曲面(mesh、fmesh、meshc、meshz、surf、fsurf、surfc、surfl)
- YARN环境搭建 之 一:CentOS7.0系统配置
- 谈谈你对MVC和三层架构的理解?(月薪三万的面试题)
- [Jarvis OJ - PWN]——Test Your Memory
- 如何查看一个现有的keil工程之前由什么版本的keil IDE编译
- Java的静态域以及封装性相关
- maya怎么贴膜_maya怎么渲染成白膜?
- c语言米粒数实验报告,《單片机C程序设计》实验报告.doc
- AirSim学习日志 5-LQR实现无人机轨迹跟踪
- 手把手带你从零开始完整开发经典游戏【俄罗斯方块】,全部逻辑只用不到200行代码。
- 地铁FAS设备组成及系统结构
- redis源码分析(2)——事件循环
- 计算机语言可读性排名,计算机语言可读性强,容易记忆
- capacity和capability的区别
- Processing笔记05—贪吃蛇小游戏
- 你应该会的一道多线程笔试题
- Lammps安装教程 windows版
- MATLAB(矩阵基本运算)
- 原型法, 瀑布模型, V-模型, 螺旋模型
- 【3dsMax】如何用VSocde写最简单的MaxScript脚本
热门文章
- 【HDU - 6231】K-th Number(二分,思维)
- 计算机视觉那些事儿(1):基本任务
- 2.Building Models from Convolutions
- php测试插入,php – 使用Symfony测试数据库插入
- 伺服电机停的时候会冲一下_造成伺服电机抖动的原因竟然是它!内附解决方法...
- stm32linux区别,STM32MPU和OpenSTLinux你了解多少?
- matlab中云模型,云模型简介与个人理解matlab程序.doc
- 使用枚举完成学生类,性别的设置。
- leetcode374. 猜数字大小
- leetcode108 将有序数组转换为二叉搜索树