繁体   English   中英

Javax.validation - 如何使用指定日期验证 Date 属性

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM