下面列出了怎么用javax.validation.constraints.PastOrPresent的API类实例代码及写法,或者点击链接到github查看源代码。
private String resolveDate(Field field) {
Future future = field.getAnnotation(Future.class);
if (future != null) {
return "必须为未来的时间";
}
FutureOrPresent futureOrPresent = field.getAnnotation(FutureOrPresent.class);
if (futureOrPresent != null) {
return "必须为未来或现在的时间";
}
Past past = field.getAnnotation(Past.class);
if (past != null) {
return "必须为过去的时间";
}
PastOrPresent pastOrPresent = field.getAnnotation(PastOrPresent.class);
if (pastOrPresent != null) {
return "必须为过去或现在的时间";
}
return null;
}
protected HibernateValidatorConfiguration getValidatorFactoryConfiguration(Locale locale) {
HibernateValidatorConfiguration configuration = Validation.byProvider(HibernateValidator.class)
.configure()
.clockProvider(new CubaValidationTimeProvider(timeSource))
.traversableResolver(new CubaValidationTraversableResolver(metadata, entityStates))
.messageInterpolator(new CubaValidationMessagesInterpolator(messages, locale));
ConstraintMapping constraintMapping = configuration.createConstraintMapping();
//Hibernate validators doesn't support java.sql.Date.
//Replace standard validators for java.util.Date with support java.sql.Date
registerPastValidators(constraintMapping.constraintDefinition(Past.class));
registerPastOrPresentValidators(constraintMapping.constraintDefinition(PastOrPresent.class));
registerFutureValidators(constraintMapping.constraintDefinition(Future.class));
registerFutureOrPresentValidators(constraintMapping.constraintDefinition(FutureOrPresent.class));
configuration.addMapping(constraintMapping);
return configuration;
}
protected void registerPastOrPresentValidators(ConstraintDefinitionContext<PastOrPresent> context) {
context.includeExistingValidators(false)
.validatedBy(PastOrPresentValidatorForCalendar.class)
.validatedBy(CubaPastOrPresentValidatorForDate.class)
// Java 8 date/time API validators
.validatedBy(PastOrPresentValidatorForHijrahDate.class)
.validatedBy(PastOrPresentValidatorForInstant.class)
.validatedBy(PastOrPresentValidatorForJapaneseDate.class)
.validatedBy(PastOrPresentValidatorForLocalDate.class)
.validatedBy(PastOrPresentValidatorForLocalDateTime.class)
.validatedBy(PastOrPresentValidatorForLocalTime.class)
.validatedBy(PastOrPresentValidatorForMinguoDate.class)
.validatedBy(PastOrPresentValidatorForMonthDay.class)
.validatedBy(PastOrPresentValidatorForOffsetDateTime.class)
.validatedBy(PastOrPresentValidatorForOffsetTime.class)
.validatedBy(PastOrPresentValidatorForThaiBuddhistDate.class)
.validatedBy(PastOrPresentValidatorForYear.class)
.validatedBy(PastOrPresentValidatorForYearMonth.class)
.validatedBy(PastOrPresentValidatorForZonedDateTime.class);
}
@PastOrPresent(message = "Date must be on or before Today")
public LocalDateTime getDateAsLocalDateTime() {
return DateFormatting.fromBrowserDate(date);
}