我试图找出 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;
}
}
这是我尝试过的示例网址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
关于java - 为 Spring 4 @RequestParam 或 @PathVariable 注册自定义转换器的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27513048/