zoukankan      html  css  js  c++  java
  • jackson @ResponseBody 处理日期类型的字段

    前言:以前只知道一种方式(@JsonFormat)来处理日期格式问题,今天才发现还有两种方式,并且可以全局设置格式,这里记录一下。

    首先,pom.xml 中需要先引入如下 jackson 的依赖:

         <!--支持@ResponseBody 返回json-->
            <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>2.9.5</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-annotations</artifactId>
                <version>2.9.5</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>2.9.5</version>
            </dependency>

    下面则是遇到日期类型(java.util.Date)类型时做日期格式转换:

    方式一、@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") 

      在实体类上的字段上加这个注解即可。

      比较方便,也比较独立,不过每个 date 类型的字段都要加,也挺繁琐的。

        @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        private Date updateTime;

    方式二、spring-mvc.xml 中全局设置日期格式(使用内置的日期格式化工具),并且可以同时使用 @JsonFormat 来设置特定的日期格式,@JsonFormat 优先级高于 spring-mvc.xml 中的设置

      spring-mvc.xml 中的配置:

        <mvc:annotation-driven>
            <mvc:message-converters register-defaults="true">
                <!-- 将Jackson2HttpMessageConverter的默认格式化输出设为true -->
                <!--支持@ResponseBody 返回json-->
                <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                    <property name="prettyPrint" value="true"/>
                    <!-- 兼容ie -->
                    <property name="supportedMediaTypes">
                        <list>
                            <value>application/json</value>
                            <value>text/json</value>
                        </list>
                    </property>
    
                    <!--是全局设置json响应的日期格式,但此方法可以和@JsonFormat共存,也就是说可以全局设置一个格式,特定的需求可以使用注解设置。-->
                    <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>

      参考 blog:https://www.cnblogs.com/woshimrf/p/5189435.html

  • 相关阅读:
    PMP考试结束了,期待结果中。。。
    Windows Server 2008安装及配置Terminal Server
    CMMI分段式级别的易理解版本
    c# RoundUp函数
    管理学中的知名定律之阿尔布莱特法则
    Risk Categories
    如何躲开“责任”的逆袭
    一次失败的聚会
    【老孙随笔】属相影响你的职业前途吗?
    项目经理的超越(三)人际优先,做事上的超越
  • 原文地址:https://www.cnblogs.com/yuxiaole/p/9706746.html
Copyright © 2011-2022 走看看