有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

javajavax。验证如何使用指定的日期验证日期属性

我一直在尝试用java验证日期属性。util。日期类是javax的方法。验证注释

我找到了一些注释,例如:@过去、@PastOrPresent、@Future、@FutureOrPresent;然而,我需要的验证将与一个特定的日期

我在搜索这样的东西:

@Future("01/01/2019")

有人知道我怎么做吗?。我希望使用现有的注释(我不希望使用自定义注释)

问候


共 (1) 个答案

  1. # 1 楼答案

    我能够以这种方式创建注释:

    未来定制注释

    接口:

    @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 {};
    }
    

    课程:

    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")