我有这个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':拒绝的值[];
很显然,当我选择日期值并且应用程序运行正常时,我没有错误。 我该如何在完成日期时提供空值而没有错误?
答案 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