[英]What is the correct way to register a custom converter for Spring 4 @RequestParam or @PathVariable
我試圖弄清楚在Spring 4中客戶轉換器對RequestParams和PathVariables的“最佳”或推薦方式是什么? 我們已經注冊了Jackson JSON轉換器,但是它們不適用於這些參數,通過在線閱讀,我發現了關於應該做什么的大約十二種不同答案。
我原本以為LocalDateTime可以在沒有標准ISO格式yyyy-MM-ddThh:mm:ss的自定義轉換器的情況下工作,但是當我將其傳遞給(2014-12-01T01:01:01)時,它只是引發了異常,因此我嘗試了不同的格式以查看它們是否可行,但是到目前為止,我嘗試過的所有格式都沒有奏效,所以我打算嘗試使用自定義轉換器,但是我似乎找不到正確的方法。
@RequestMapping(value = "/foo")
@RestController
public class TestController{
@RequestMapping(value="/test", method=RequestMethod.GET)
public void test(@RequestParam("stuff") LocalDateTime source) {
int i = 0;
}
}
這是我嘗試的示例URL http://localhost:8081/data/foo/test?start=1986-04-08T12:30:00
適合您的情況的格式為
@RequestMapping(value="/test", method= RequestMethod.GET)
public void test(@RequestParam("stuff") @DateTimeFormat(iso=ISO.DATE_TIME) LocalDateTime source) {
int i = 0;
}
只需確保一件事,在您傳遞的值中並在問題中2014-12-01T:01:01:01
您有錯字,應該是2014-12-01T01:01:01
所以不要使用分號T
和01
嘗試查看由Spring 3類型轉換和驗證引入的@DateTimeFormat參數注釋:
@RequestMapping(value = "/appointments/{day}", method = RequestMethod.GET)
public String getAppointmentsForDay(@PathVariable @DateTimeFormat(iso=ISO.DATE) Date day) {
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.