Я создал Spring Boot Controller, который принимает объект формы события.Преобразование сериализованного поля времени HTML в java.time.LocalTime
класса@RestController
@RequestMapping("/Event")
public class EventController {
@RequestMapping(value = "/create", method = RequestMethod.POST)
private synchronized List<Event> createEvent(Event inEvent) {
log.error("create called with event: " + inEvent);
create(inEvent);
return listAll();
}
}
События выглядит следующим образом (геттеры/сеттера опущенных)
public final class Event {
private Integer id;
private Integer periodId;
private String name;
@DateTimeFormat(pattern = "dd/MM/yyyy")
private LocalDate eventDate;
private LocalTime startTime;
private LocalTime endTime;
private Integer maxParticipants;
private String status;
private String eventType;
}
Я получаю сообщение об ошибке пружинного типа рассогласования на STARTTIME и EndTime полей
Field error in object 'event' on field 'endTime': rejected value
[12:00] codes
[typeMismatch.event.endTime,typeMismatch.endTime,typeMismatch.java.time.LocalTime,typeMismatch]
arguments
[org.springframework.context.support.DefaultMessageSourceResolvable:
codes [event.endTime,endTime] arguments [] default message [endTime]]
default message [Failed to convert property value of type
'java.lang.String' to required type 'java.time.LocalTime' for property
'endTime' nested exception is
org.springframework.core.convert.ConversionFailedException: Failed to
convert from type [java.lang.String] to type [java.time.LocalTime] for
value '12:00' nested exception is java.lang.IllegalArgumentException:
Parse attempt failed for value [12:00]]
Сериализованной форма данные публикуются с использованием метода jQuery AJAX. Сериализованные данные выглядят так:
eventDate=27%2F01%2F2017&eventType=REN&maxParticipants=10&startTime=09%3A00&endTime=12%3A00
Как заставить Spring правильно разобрать сериализованные поля времени?
Я использую Java 8.
Спасло меня много времени. Upvoting. Добавьте соответствующие чтения (книги или учебники). Благодаря,. –
@Vito, спасибо за выживание! Единственными ресурсами, которые я использовал для ответа на этот вопрос, были страницы JavaDoc, которые уже связаны из ответа. Что касается более общих материалов для чтения, я всегда считал, что общедоступная [весенняя документация] (https://spring.io/docs) неплоха. –