欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java Web程序中利用Spring框架返回JSON格式的日期

 更新時間:2016年05月25日 16:54:10   作者:hellostory  
這里我們來介紹一下Java Web程序中利用Spring框架返回JSON格式的日期的方法,前提注意使用@DatetimeFormat時要引入一個類庫joda-time-版本.jar,否則會無法訪問相應(yīng)路徑

返回Json時格式化日期Date
第一步:創(chuàng)建CustomObjectMapper類

/** 
 * 解決SpringMVC使用@ResponseBody返回json時,日期格式默認(rèn)顯示為時間戳的問題。需配合<mvc:message-converters>使用 
 */ 
@Component("customObjectMapper") 
public class CustomObjectMapper extends ObjectMapper { 
 
  public CustomObjectMapper() { 
    CustomSerializerFactory factory = new CustomSerializerFactory(); 
    factory.addGenericMapping(Date.class, new JsonSerializer<Date>() { 
      @Override 
      public void serialize(Date value, JsonGenerator jsonGenerator, 
          SerializerProvider provider) throws IOException, JsonProcessingException { 
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
        jsonGenerator.writeString(sdf.format(value)); 
      } 
    }); 
    this.setSerializerFactory(factory); 
  } 
} 

第二步:配置如下:

<mvc:annotation-driven> 
  <mvc:message-converters> 
    <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> 
      <property name="objectMapper" ref="customObjectMapper"></property> 
    </bean> 
  </mvc:message-converters> 
</mvc:annotation-driven> 

效果如下:
格式化前

2016525164908927.png (231×51)

格式化后

2016525164931835.png (265×51)

進階:返回自定義格式日期
使用@ResponseBody時返回json字符串的日期格式。Date類型屬性默認(rèn)返回一個Long型的時間戳,怎樣能夠返回自定義的日期格式?
解決方案:目前有兩種方式實現(xiàn),
1、局部修改(網(wǎng)上較多,但不推薦);
繼承Jackson的抽象類:JsonSerializer<T>,然后在javabean的屬性getter()上添加注解@JsonSerialize即可實現(xiàn)。
代碼如下:

import java.io.IOException; 
import java.text.SimpleDateFormat; 
import java.util.Date; 
 
import org.codehaus.jackson.JsonGenerator; 
import org.codehaus.jackson.JsonProcessingException; 
import org.codehaus.jackson.map.JsonSerializer; 
import org.codehaus.jackson.map.SerializerProvider; 
 
/** 
 * @description 自定義返回JSON 數(shù)據(jù)格中日期格式化處理 
 */ 
public class CustomDateSerializer extends JsonSerializer<Date> { 
 
  @Override 
  public void serialize(Date value,  
      JsonGenerator jsonGenerator,  
      SerializerProvider provider) 
      throws IOException, JsonProcessingException { 
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    jsonGenerator.writeString(sdf.format(value)); 
  } 
} 

使用方式: 

@JsonSerialize(using = CustomDateSerializer.class) 
public Date getCreateDate() { 
  return createDate; 
} 

2、全局修改(強烈推薦):
MappingJacksonHttpMessageConverter主要通過ObjectMapper來實現(xiàn)返回json字符串。這里我們繼承該類,注冊一個JsonSerializer<T>。然后在配置文件中注入自定義的ObjectMapper。
代碼如下:

import java.io.IOException; 
import java.text.SimpleDateFormat; 
import java.util.Date; 
 
import org.codehaus.jackson.JsonGenerator; 
import org.codehaus.jackson.JsonProcessingException; 
import org.codehaus.jackson.map.JsonSerializer; 
import org.codehaus.jackson.map.ObjectMapper; 
import org.codehaus.jackson.map.SerializerProvider; 
import org.codehaus.jackson.map.ser.CustomSerializerFactory; 
 
/** 
 * @description 解決Date類型返回json格式為自定義格式 
 */ 
public class CustomObjectMapper extends ObjectMapper { 
 
  public CustomObjectMapper(){ 
    CustomSerializerFactory factory = new CustomSerializerFactory(); 
    factory.addGenericMapping(Date.class, new JsonSerializer<Date>(){ 
      @Override 
      public void serialize(Date value,  
          JsonGenerator jsonGenerator,  
          SerializerProvider provider) 
          throws IOException, JsonProcessingException { 
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
        jsonGenerator.writeString(sdf.format(value)); 
      } 
    }); 
    this.setSerializerFactory(factory); 
  } 
} 

spring-servlet.xml中配置:

<mvc:annotation-driven> 
    <mvc:message-converters> 
      <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> 
        <property name="objectMapper" ref="customObjectMapper"></property> 
      </bean> 
    </mvc:message-converters> 
  </mvc:annotation-driven> 
  <bean id="customObjectMapper" class="com.pmc.dwa.common.custom.CustomObjectMapper"></bean> 

相關(guān)文章

  • Java內(nèi)部類_動力節(jié)點Java學(xué)院整理

    Java內(nèi)部類_動力節(jié)點Java學(xué)院整理

    內(nèi)部類是指在一個外部類的內(nèi)部再定義一個類。下面通過本文給大家java內(nèi)部類的使用小結(jié),需要的朋友參考下吧
    2017-04-04
  • JAVA基于數(shù)組實現(xiàn)的商品信息查詢功能示例

    JAVA基于數(shù)組實現(xiàn)的商品信息查詢功能示例

    這篇文章主要介紹了JAVA基于數(shù)組實現(xiàn)的商品信息查詢功能,結(jié)合實例形式詳細(xì)分析了java使用數(shù)組存儲數(shù)據(jù)實現(xiàn)的商品信息查詢功能相關(guān)操作技巧,需要的朋友可以參考下
    2019-11-11
  • 教大家使用java實現(xiàn)頂一下踩一下功能

    教大家使用java實現(xiàn)頂一下踩一下功能

    這篇文章主要教大家如何使用java實現(xiàn)頂一下踩一下功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • java String、StringBuilder和StringBuffer的區(qū)別詳解

    java String、StringBuilder和StringBuffer的區(qū)別詳解

    這篇文章主要介紹了java String、StringBuilder和StringBuffer的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • java 中Spark中將對象序列化存儲到hdfs

    java 中Spark中將對象序列化存儲到hdfs

    這篇文章主要介紹了java 中Spark中將對象序列化存儲到hdfs的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • Java中如何判斷是否為閏年詳細(xì)實例

    Java中如何判斷是否為閏年詳細(xì)實例

    所謂閏年就是指2月有29天的那一年,下面這篇文章主要給大家介紹了關(guān)于Java中如何判斷是否為閏年的相關(guān)資料,文中通過圖文以及實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • Java對象的四種引用方式實例分析

    Java對象的四種引用方式實例分析

    這篇文章主要介紹了Java對象的四種引用方式,簡單描述了四種引用方式的概念、應(yīng)用場景并結(jié)合實例形式分析了弱引用所引用對象的垃圾回收過程,需要的朋友可以參考下
    2019-08-08
  • Java設(shè)計模式之命令模式(Command模式)介紹

    Java設(shè)計模式之命令模式(Command模式)介紹

    這篇文章主要介紹了Java設(shè)計模式之命令模式(Command模式)介紹,本文講解了Command模式的定義、如何使用命令模式等內(nèi)容,需要的朋友可以參考下
    2015-03-03
  • SpringBoot http請求注解@RestController原理解析

    SpringBoot http請求注解@RestController原理解析

    這篇文章主要介紹了SpringBoot http請求注解@RestController原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • 淺談spring 常用注解

    淺談spring 常用注解

    這篇文章主要介紹了淺談spring 常用注解,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11

最新評論