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

标签 java spring validation

我一直在尝试使用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/

相关文章:

java - org.springframework.web.HttpMediaTypeNotAcceptableException Spring MVC 4.2.5

spring - java - 如何为spring批处理数据和业务数据配置单独的数据源?我应该这样做吗?

javascript - 当另一个字段更改时触发字段验证

javascript - jQuery Real Person - 总是失败

c# - 如果验证错误则停止回发

java - 一种不使用反射获取字段值的方法

java - 为什么我不能在 Java 8 中继续使用带有 Collections#forEach 的标签?

java - 初始化新对象时的StackOverflow

java - 使用相同 onMessage 的多个 MessageListener 的线程安全性?

Spring 数据 jpa : Not an managed type: class xxx