为了账号安全,请及时绑定邮箱和手机立即绑定

如何在对Spring MVC Controller的GET请求中接受Date参数?

/ 猿问

如何在对Spring MVC Controller的GET请求中接受Date参数?

烧仙草VB 2019-11-29 10:01:00

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


@RequestMapping(value="/fetch" , method=RequestMethod.GET)

    public @ResponseBody String fetchResult(@RequestParam("from") Date fromDate) {

        //Content goes here

    }

我正在使用Firebug检查时,请求已正确发送。我收到错误:


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


如何使控制器接受这种日期格式?请帮忙。我究竟做错了什么?


查看完整描述

3 回答

?
元芳怎么了

好的,我解决了。写给那些在一整天不间断的编码后可能会累并且错过这种愚蠢的事情的人。


@RequestMapping(value="/fetch" , method=RequestMethod.GET)

    public @ResponseBody String fetchResult(@RequestParam("from") @DateTimeFormat(pattern="yyyy-MM-dd") Date fromDate) {

        //Content goes here

    }

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


查看完整回答
反对 回复 2019-11-29
?
慕尼黑8549860

...或者您可以以正确的方式进行操作,并为整个应用程序中的日期序列化/反序列化制定一致的规则。把它放在application.properties中:


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


查看完整回答
反对 回复 2019-11-29
?
狐的传说

如果要使用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"

}


查看完整回答
反对 回复 2019-11-29

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信