Java 如何仅在用户插入日期时@Valid日期(Spring MVC+;Hibernate)
我有一个POJO,在表单中用作Java 如何仅在用户插入日期时@Valid日期(Spring MVC+;Hibernate),java,hibernate,date,spring-mvc,annotations,Java,Hibernate,Date,Spring Mvc,Annotations,我有一个POJO,在表单中用作modelAttribute,它允许用户在DB上搜索记录: public class FatherSearch extends Father{ ... @Past @DateTimeFormat(pattern = "dd/MM/yyyy") private Date dataDiNascita; ... } 我必须检查用户插入的日期是否是过去的日期;如果用户插入日期,我应该检查它 问题在于,由于dataDiNasc
modelAttribute
,它允许用户在DB上搜索记录:
public class FatherSearch extends Father{
...
@Past
@DateTimeFormat(pattern = "dd/MM/yyyy")
private Date dataDiNascita;
...
}
我必须检查用户插入的日期是否是过去的日期;如果用户插入日期,我应该检查它
问题在于,由于dataDiNascita是一个日期
它不能为空,当用户提交表单时没有填写日期字段,他们会得到错误类型不匹配
这是我得到错误信息的控制器:
@RequestMapping("/admin/fatherSearchSent")
public String fatherSearchSent(..., @Valid FatherSearch fatherSearch,...){
}
我必须允许用户决定是否在搜索表单中插入日期,因此我需要一种方法来处理用户不插入任何日期的情况
谢谢为什么dataDiNascita不能为空?因为当我对modelAttribute进行有效验证时,我在日期字段上得到了类型不匹配错误。我编辑了我的帖子,也许现在是ClearSpring不验证空值,如果值为空且字段没有@notnull验证,Spring将不会验证字段。