У меня есть запрос 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: запрос, отправленный клиентом, был синтаксически неверным.
Как я могу заставить контроллер принимать этот формат даты? Пожалуйста помоги. Что я делаю не так?
java
spring
date
spring-mvc
LittleLebowski
источник
источник
@DateTimeFormat
каждый контроллер, который у вас есть ...spring.mvc.date-format
атрибутapplication.properties
или добавить bean-компоненты, которые реализуютorg.springframework.format
интерфейс (расширениеorg.springframework.format.datetime.DateFormatter
, вероятно, является выходом). В незагрузочном Spring вы можете метод и добавлять Formatter реализующих бобов там.@Override
addFormatters
WebMvcConfigurerAdapter
Это то, что я сделал, чтобы получить отформатированную дату из интерфейса.
Вы можете использовать его, чтобы получить то, что хотите.
источник
... или вы можете сделать это правильно и иметь согласованное правило для сериализации / десериализации дат во всем вашем приложении. поместите это в application.properties:
источник
Нижеприведенное решение отлично работает для приложения с весенней загрузкой.
контроллер:
Итак, в вызывающей программе (в моем случае это веб-поток) нам нужно передать дату и время в этом формате ( «гггг-ММ-дд ЧЧ: мм: сс» ).
Сторона звонящего:
Repository:
Ура !!
источник
Если вы хотите использовать PathVariable, вы можете использовать приведенный ниже пример метода (все методы действуют одинаково):
источник