Hibernate Validator和Joda DateTime Validator

时间:2014-12-05 02:51:06

标签: spring hibernate jodatime thymeleaf

我有一个带有Joda DateTime字段的用户模型类,并遵循以下验证规则:

@NotEmpty
@DateTimeFormat(pattern="dd/MM/yyyy")
@Past
private DateTime dob;

我提交注册表后会收到此错误:

No validator could be found for type: org.joda.time.DateTime.

如何在此字段中添加验证器?

2 个答案:

答案 0 :(得分:0)

使用@NotNull代替@NotEmpty来解决问题。

答案 1 :(得分:0)

您必须编写自己的验证器才能与Joda' DateTime一起使用。

@Past仅适用于(非Joda)DateCalendar。我不知道为Joda类型提供Java bean验证器的库。

仅供参考,@Past的Javadoc支持它支持的类型:

/**
 * The annotated element must be a date in the past.
 * Now is defined as the current time according to the virtual machine.
 * <p/>
 * The calendar used if the compared type is of type {@code Calendar}
 * is the calendar based on the current timezone and the current locale.
 * <p/>
 * Supported types are:
 * <ul>
 *     <li>{@code java.util.Date}</li>
 *     <li>{@code java.util.Calendar}</li>
 * </ul>
 * <p/>
 * {@code null} elements are considered valid.
 *
 * @author Emmanuel Bernard
 */