我使用Spring啓動並列入jackson-datatype-jsr310
使用Maven:如何在Spring中使用LocalDateTime RequestParam?我得到「無法將字符串轉換爲LocalDateTime」
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>2.7.3</version>
</dependency>
當我嘗試使用RequestParam與Java 8日期/時間類型,
@GetMapping("/test")
public Page<User> get(
@RequestParam(value = "start", required = false)
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime start) {
//...
}
以及與此URL測試:
/test?start=2016-10-8T00:00
我得到以下錯誤:
{
"timestamp": 1477528408379,
"status": 400,
"error": "Bad Request",
"exception": "org.springframework.web.method.annotation.MethodArgumentTypeMismatchException",
"message": "Failed to convert value of type [java.lang.String] to required type [java.time.LocalDateTime]; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [@org.springframework.web.bind.annotation.RequestParam @org.springframework.format.annotation.DateTimeFormat java.time.LocalDateTime] for value '2016-10-8T00:00'; nested exception is java.lang.IllegalArgumentException: Parse attempt failed for value [2016-10-8T00:00]",
"path": "/test"
}
當然,但有一個主要問題 - 爲什麼使用自定義控制器,如果對於大多數請求您可以使用Spring JPA存儲庫?實際上這個錯誤的問題發生在這個地方;/ – thorinkor
你也可以在簽名方法中使用這個解決方案:'@RequestParam @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)LocalDateTime start' – Anna
@ Anna的解決方案非常適合我 – MatanRubin