java - 为 Spring 4 @RequestParam 或 @PathVariable 注册自定义转换器的正确方法是什么

标签 java spring spring-mvc

我试图找出 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 因此 T01

之间没有分号

关于java - 为 Spring 4 @RequestParam 或 @PathVariable 注册自定义转换器的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27513048/

相关文章:

Java JTextArea 未在 GUI 中显示

java - URL 和用户的 Spring Security 配置

java - 对模块的模棱两可的调用

java - 基本身份验证 Java SOAP Web 服务客户端

java - 将 CookieParam 注释与 Spring MVC Controller 一起使用

java - 使用 Spring WebFlow 在 Hibernate 中进行 C3P0 池化仍然没有成功

java - 创建名为 'webSecurityConfig' 的 bean 时出错,因为当我尝试将 UserService Bean Autowiring 到 WebSecurityConfig 中时,它不存在

java - Thymeleaf 显示列表对象的字段

java - 如何使用 JOD Converter 打印到 PDF 来减少 Open Office Service 的响应时间?

java - 停止使用@Scheduled注释的计时器