Thymeleaf отклоняет нулевую дату

У меня есть этот html-код:

<input class = "form-control col-sm-8" type = "date" th:field = "*{completiondate}">

и эта модель:

import java.math.BigDecimal;
import java.sql.Date;
import java.sql.Timestamp;
public class EventReport {
    private Long id;
    private Date creationdate;
    private String status;
    private Date completiondate;
    ...
}

Дата завершения не является обязательным значением и иногда может быть нулевым. Когда пользователь отправляет форму сообщения, я беру следующее

Field error in object 'treeTrimsEventReport' on field 'completiondate': rejected value [];

Очевидно, что у меня нет ошибок, когда я выбираю значение для даты, и приложение работает нормально. Как я могу без ошибок дать ноль на дату завершения?

не могли бы вы показать аннотации объекта в поле даты, к которому привязана эта дата?

Thierry 29.11.2018 10:39
<form class = "form-horizontal" action = "#" th:action = "@{/lights/insert}" th:object = "${eventreport}" method = "post">
Stavros Droutsas 30.11.2018 11:10
import java.math.BigDecimal; import java.sql.Date; import java.sql.Timestamp; public class EventReport { private Long id; private Date creationdate; private String status; private Date completiondate;
Stavros Droutsas 30.11.2018 11:10
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
3
306
1

Ответы 1

Думаю, это ошибка привязки.

Вам нужно сообщить Spring, как преобразовать данные формы, которые поступают в виде текста (String), в тип вашей модели (здесь Date).

Вы можете сделать это с помощью этой аннотации в поле в EventReport:

import org.springframework.format.annotation.DateTimeFormat
...
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date completiondate;

(измените шаблон, чтобы он соответствовал тому, который вы хотите показать пользователю)

Spring дает вам другую возможность указать, как связывать данные.

Ознакомьтесь со справочным руководством в этой главе, чтобы узнать обо всех возможностях: https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#mvc-ann-initbinder

Другие вопросы по теме