[英]Javax.validation - how to validate a Date attribute with a specifies date
我一直在尝试使用java.util.Date class 验证日期属性是javax.validation注释的手段。
我找到了一些注释来做到这一点,例如: @Past、@PastOrPresent、@Future、@FutureOrPresent ; 但是我需要验证将有一个特定的日期。
我正在搜索这样的东西:
@Future("01/01/2019")
有人知道我该怎么做吗? 我想用现有的注释来做(我不喜欢用自定义注释来做)。
问候。
我能够以这种方式创建注释:
FutureCustom注解
界面:
@Target({FIELD, PARAMETER})
@Retention(RUNTIME)
@Constraint(validatedBy = FutureCustom.class)
public @interface FutureCustom {
public abstract String max() default "";
public abstract String message() default "Message";
public abstract Class<?>[] groups() default {};
public abstract Class<? extends Payload>[] payload() default {};
}
Class:
public class FutureCustomImpl implements ConstraintValidator<FutureCustom, Date> {
private String max;
@Override
public void initialize(FutureCustom constraintAnnotation) {
this.max = constraintAnnotation.max();
}
@Override
public boolean isValid(Date value, ConstraintValidatorContext context) {
//Validation using value and max like parameter in annotation
// The max attribute will always be a String, you have to convert it to Date.
}
}
这种方式的注释将是:
@FutureCustom(max="10/10/2010")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.