<form th:action="@{home}" method="get">
<div class="form-group">
<label>from date:</label> <input type="date" pattern="yyyy-MM-dd" name="d1" th:value="${d1}" />
<label>to date:</label> <input type="date" pattern="yyyy-MM-dd" name="d2" th:value="${d2}" />
<button type="submit">Trouver</button>
</div>
</form>
это часть кода контроллера:
@RequestParam(name = "d1", defaultValue = "1900-01-01") @DateTimeFormat(pattern = "yyyy-MM-dd") Date d1,
@RequestParam(name = "d2", defaultValue = "2200-01-01") @DateTimeFormat(pattern = "yyyy-MM-dd") Date d2){
Я получаю это сообщение:
Произошла непредвиденная ошибка (type = Bad Request, status = 400). Не удалось преобразовать значение типа [java.lang.String] в требуемый тип [java.util.Date]; Вложенное исключение - org.springframework.core.convert.ConversionFailedException: Не удалось преобразовать из типа [java.lang.String] в тип [@org.springframework.web.bind.annotation.RequestParam @org.springframework.format.annotation.DateTimeFormat java.util.Date] для значения 'Wed Jun 08 00:00:00 WET 2016'; вложенное исключение - java.lang.IllegalArgumentException: попытка анализа не удалось для значения [Wed Jun 08 00:00:00 WET 2016]
Шаблон, который вы передаете своим элементам ввода html, не работает, как вы ожидаете. Вы не устанавливаете формат для своей даты с этим, и, как вы можете видеть из сообщения об ошибке, дата, когда весна пытается разобрать,
Wed Jun 08 00:00:00 WET 2016
не какая-либо дата в формате, который вы установили как в своем html, так и в вашем контроллере (шаблон html не изменяет формат, который отправляется, он там для целей проверки).
Я никогда с этим не работал, но вы должны либо
Вот:
@DateTimeFormat(pattern = "yyyy-MM-dd")