我一直在尝试使用java.util.Date类通过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")
关于Javax.validation - 如何使用指定日期验证日期属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58647951/