Как принять параметры даты в запросе GET к контроллеру Spring MVC?
У меня есть запрос GET, который отправляет дату в формате гггг-ММ-ДД на контроллер Spring.
Код контроллера выглядит следующим образом:
@RequestMapping(value="/fetch" , method=RequestMethod.GET)
public @ResponseBody String fetchResult(@RequestParam("from") Date fromDate) {
//Content goes here
}
запрос отправляется правильно, как я проверяю с Firebug.
Я получаю ошибку:
состоянием http 400: запрос, отправленный клиентом был синтаксически некорректным.
Как я могу заставить контроллер принять этот формат даты?
Пожалуйста помочь. Что я делаю не так?
2 ответов:
хорошо, я решил ее. Написание его для тех, кто может устать после целого дня нон-стоп кодирования и пропустить такую глупость.
@RequestMapping(value="/fetch" , method=RequestMethod.GET) public @ResponseBody String fetchResult(@RequestParam("from") @DateTimeFormat(pattern="yyyy-MM-dd") Date fromDate) { //Content goes here }Да, это просто. Просто добавьте аннотацию DateTimeFormat.
Это то, что я сделал, чтобы получить форматированную дату от переднего конца
@RequestMapping(value = "/{dateString}", method = RequestMethod.GET) @ResponseBody public HttpStatus getSomething(@PathVariable @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) String dateString) { return OK; }вы можете использовать его, чтобы получить то, что вы хотите.
Comments