如何接受对Spring MVC控制器的GET请求中的日期参数?

2022-08-31 08:01:26

我有一个GET请求,它将YYYY-MM-DD格式的日期发送到Spring控制器。控制器代码如下:

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

当我与Firebug一起检查时,请求已正确发送。我收到错误:

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

如何使控制器接受此格式的日期?请帮忙。我做错了什么?


答案 1

好吧,我解决了。为那些在一整天不间断编码后可能感到疲惫并错过如此愚蠢的事情的人写它。

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

是的,这很简单。只需添加DateTimeFormat注释即可。


答案 2

这就是我从前端获取格式化日期所做的

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

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