Thymeleaf拒绝无效日期

时间:2018-11-28 11:44:44

标签: html postgresql hibernate 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;
    ...
}

完成日期不是必需的值,有时可以为null。当用户提交帖子表格时,我将输入以下

  

对象'treeTrimsEventReport'中的字段错误   'completiondate':拒绝的值[];

很显然,当我选择日期值并且应用程序运行正常时,我没有错误。 我该如何在完成日期时提供空值而没有错误?

1 个答案:

答案 0 :(得分:0)

我认为这是一个绑定错误。

您需要告诉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