如何接受日期PARAMS在一个GET请求的Spring MVC控制器?(How to accept

2019-07-20 19:27发布

我已经发送的YYYY-MM-DD格式的春天控制器日期的GET请求。 控制器代码如下:

@RequestMapping(value="/fetch" , method=RequestMethod.GET)
    public @ResponseBody String fetchResult(@RequestParam("from") Date fromDate) {
        //Content goes here
    }

因为我使用Firebug检查请求被发送正确的。 我得到的错误:

HTTP状态400:客户端发送的请求是语法不正确。

我怎样才能使控制器接受日期的格式? 请帮忙。 我究竟做错了什么?

Answer 1:

好吧,我解决了这个问题。 写它的人不停编码与一整天后谁可能是累错过这样的傻事。

@RequestMapping(value="/fetch" , method=RequestMethod.GET)
    public @ResponseBody String fetchResult(@RequestParam("from") @DateTimeFormat(pattern="yyyy-MM-dd") Date fromDate) {
        //Content goes here
    }

是的,这很简单。 只需添加DateTimeFormat注解。



Answer 2:

这是我做过什么让从前端格式化的日期

  @RequestMapping(value = "/{dateString}", method = RequestMethod.GET)
  @ResponseBody
  public HttpStatus getSomething(@PathVariable @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) String dateString) {
   return OK;
  }

你可以用它来得到你想要的。



Answer 3:

...或者你可以做的正确方法和对所有在您的应用程序序列化/日期deserialisation一个连贯的规则。 把这个在application.properties:

spring.mvc.date-format=yyyy-MM-dd


Answer 4:

如果你想使用PathVariable,您可以使用下面的实例方法(所有方法都做同样的):

//You can consume the path .../users/added-since1/2019-04-25
@GetMapping("/users/added-since1/{since}")
public String userAddedSince1(@PathVariable("since") @DateTimeFormat(pattern = "yyyy-MM-dd") Date since) {
    return "Date: " + since.toString(); //The output is "Date: Thu Apr 25 00:00:00 COT 2019"
}

//You can consume the path .../users/added-since2/2019-04-25
@RequestMapping("/users/added-since2/{since}")
public String userAddedSince2(@PathVariable("since") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) Date since) {
    return "Date: " + since.toString(); //The output is "Date: Wed Apr 24 19:00:00 COT 2019"
}

//You can consume the path .../users/added-since3/2019-04-25
@RequestMapping("/users/added-since3/{since}")
public String userAddedSince3(@PathVariable("since") @DateTimeFormat(pattern = "yyyy-MM-dd") Date since) {
    return "Date: " + since.toString(); //The output is "Date: Thu Apr 25 00:00:00 COT 2019"
}


文章来源: How to accept Date params in a GET request to Spring MVC Controller?