我想弄清楚Spring 4中RequestParams和PathVariables的客户转换器的“最佳”或推荐方式是什么?我们注册了我们的杰克逊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
答案 0 :(得分:5)
您案例的正确格式为
@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
之间没有分号{1}}
答案 1 :(得分:0)
尝试查看Spring 3 Type Conversions and Validations引入的@DateTimeFormat参数注释:
@RequestMapping(value = "/appointments/{day}", method = RequestMethod.GET)
public String getAppointmentsForDay(@PathVariable @DateTimeFormat(iso=ISO.DATE) Date day) {
...
}