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

@JsonFormat處理LocalDateTime失效的問題

 更新時間:2022年08月27日 10:21:53   作者:以后的今天  
這篇文章主要介紹了關(guān)于@JsonFormat處理LocalDateTime失效的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

@JsonFormat處理LocalDateTime失效

Failed to convert property value of type ‘java.lang.String’ to required type ‘localdatetime’ for property ‘time’ xxxx

Api 請求參數(shù)中,通過需要用時間LocalDateTime,希望通過@JsonFormat() 處理時間格式:

@GetMapping("/user")
public UserDTO getUser(UserDTO name) {
?? ?xxx
}
@Data
public class UserDTO {
? ? @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
? ? LocalDateTime time;
}

當我們通過get請求,通過表單的方式提交時,就會報上面按個轉(zhuǎn)換異常參數(shù);

解決:

方案一:改成請求體的方式提交,@RequestBody

? ? //get請求
? ? @GetMapping("/user")
? ? public UserDTO getUser(@RequestBody UserDTO name) {
? ? }
? ? // post 請求
? ? @PostMapping("/user")
? ? public UserDTO getUser(@RequestBody UserDTO name) {
? ? }

方案二:同時添加@DateTimeFormat()注解這個是Spring提供的注解

@Data
public class UserDTO {
? ? @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
? ? @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
? ? LocalDateTime time;
}
  • @DateTimeFormat 用于將請求參數(shù)序列化
  • @JsonFormat() 將返回參數(shù)序列話

@JsonFormat格式化LocalDateTime失敗

我們可以使用SpringBoot依賴中的@JsonFormat注解,將前端通過json傳上來的時間,通過@RequestBody自動綁定到Bean里的LocalDateTime成員上。具體的綁定注解使用方法如下所示。

@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")

出現(xiàn)問題的版本

我使用Spring Boot 2.0.0 時,直接在字段上加上@JsonFormat 注解就可以完成數(shù)據(jù)的綁定。

而在使用Spring Boot 1.5.8時,只在字段上加上@JsonFormat 注解,在數(shù)據(jù)綁定時無法將Date類型的數(shù)據(jù)自動轉(zhuǎn)化為字符串類型的數(shù)據(jù)。

解決:

1.將SpringBoot版本升級為2.0.0及以上。

2.如果不升級SpringBoot版本,可以按照下面的方式解決問題。

不升級SpringBoot版本,添加Jackson對Java Time的支持后,就能解決這個問題。

在pom.xml中添加:

<dependency>
? ? <groupId>com.fasterxml.jackson.module</groupId>
? ? <artifactId>jackson-module-parameter-names</artifactId>
</dependency>
<dependency>
? ? <groupId>com.fasterxml.jackson.datatype</groupId>
? ? <artifactId>jackson-datatype-jdk8</artifactId>
</dependency>
<dependency>
? ? <groupId>com.fasterxml.jackson.datatype</groupId>
? ? <artifactId>jackson-datatype-jsr310</artifactId>
</dependency>

添加JavaConfig,自動掃描新添加的模塊:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.fasterxml.jackson.databind.ObjectMapper;
?
@Configuration
public class JacksonConfig {
?
? ? @Bean
? ? public ObjectMapper serializingObjectMapper() {
? ? ? ? ObjectMapper objectMapper = new ObjectMapper();
? ? ? ? objectMapper.findAndRegisterModules();
? ? ? ? return objectMapper;
? ? }
}

或者在application.properties添加如下配置:

spring.jackson.serialization.write-dates-as-timestamps=false

或者只注冊JavaTimeModule,添加下面的Bean

@Bean
public ObjectMapper serializingObjectMapper() {
? ObjectMapper objectMapper = new ObjectMapper();
? objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
? objectMapper.registerModule(new JavaTimeModule());
? return objectMapper;
}

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java容器類源碼詳解 Deque與ArrayDeque

    Java容器類源碼詳解 Deque與ArrayDeque

    這篇文章主要介紹了Java容器類源碼詳解 Deque與ArrayDeque,Deque 接口繼承自 Queue接口,但 Deque 支持同時從兩端添加或移除元素,因此又被成為雙端隊列。,需要的朋友可以參考下
    2019-06-06
  • Java JDK 1.8 lambda的用法詳解

    Java JDK 1.8 lambda的用法詳解

    這篇文章主要介紹了Java JDK 1.8 lambda的用法詳解,文中給大家提到了jdk 1.8 Lambda 表達式 遍歷數(shù)組的方法,需要的朋友可以參考下
    2019-09-09
  • Spring @Cacheable redis異常不影響正常業(yè)務(wù)方案

    Spring @Cacheable redis異常不影響正常業(yè)務(wù)方案

    這篇文章主要介紹了Spring @Cacheable redis異常不影響正常業(yè)務(wù)方案,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • springMVC中RestTemplate傳值接值方法

    springMVC中RestTemplate傳值接值方法

    今天小編就為大家分享一篇springMVC中RestTemplate傳值接值方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • Springboot+AOP實現(xiàn)返回數(shù)據(jù)提示語國際化的示例代碼

    Springboot+AOP實現(xiàn)返回數(shù)據(jù)提示語國際化的示例代碼

    這篇文章主要介紹了Springboot+AOP實現(xiàn)返回數(shù)據(jù)提示語國際化的示例代碼,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-07-07
  • Java線程池ThreadPoolExecutor的使用及其原理詳細解讀

    Java線程池ThreadPoolExecutor的使用及其原理詳細解讀

    這篇文章主要介紹了Java線程池ThreadPoolExecutor的使用及其原理詳細解讀,線程池是一種多線程處理形式,處理過程中將任務(wù)添加到隊列,然后在創(chuàng)建線程后自動啟動這些任務(wù),線程池線程都是后臺線程,需要的朋友可以參考下
    2023-12-12
  • Springboot2.x 使用 Log4j2 異步打印日志的實現(xiàn)

    Springboot2.x 使用 Log4j2 異步打印日志的實現(xiàn)

    這篇文章主要介紹了Springboot2.x 使用 Log4j2 異步打印日志的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • SpringBoot3整合Druid的兼容性問題解決方案

    SpringBoot3整合Druid的兼容性問題解決方案

    Druid對于SpringBoot3的支持不夠全面和友好;存在一些兼容性的問題,導(dǎo)致項目報錯,所以本文小編給大家介紹了如何解決SpringBoot3整合Druid的兼容性問題,需要的朋友可以參考下
    2023-09-09
  • 解決RestTemplate反序列化嵌套對象的問題

    解決RestTemplate反序列化嵌套對象的問題

    這篇文章主要介紹了解決RestTemplate反序列化嵌套對象的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Java常見的轉(zhuǎn)義字符舉例詳解

    Java常見的轉(zhuǎn)義字符舉例詳解

    在java字符常量中,反斜杠(\)是一個特殊的字符,被稱為轉(zhuǎn)義字符,它的作用是用來轉(zhuǎn)義后面一個字符,這篇文章主要給大吉介紹了關(guān)于Java常見轉(zhuǎn)義字符的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-02-02

最新評論