gpt4 book ai didi

java - 至少 24 小时后的 hibernate validator 注释

转载 作者:搜寻专家 更新时间:2023-11-01 01:16:32 24 4
gpt4 key购买 nike

我知道存在注解@Future。

如果我用这个注解来注解字段

@Future
private Date date;

日期必须在未来意味着在当前时刻之后。

现在我需要验证该日期至少比当前时刻晚 24 小时。
我怎样才能做到?

最佳答案

AfterTomorrow.java:

@Target({ FIELD, METHOD, PARAMETER })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = AfterTomorrowValidator.class)
@Documented
public @interface AfterTomorrow {
String message() default "{AfterTomorrow.message}";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}

AfterTomorrowValidator.java:

public class AfterTomorrowValidator 
implements ConstraintValidator<AfterTomorrow, Date> {
public final void initialize(final AfterTomorrow annotation) {}

public final boolean isValid(final Date value,
final ConstraintValidatorContext context) {
Calendar c = Calendar.getInstance();
c.setTime(value);
c.add(Calendar.DATE, 1);
return value.after(c.getTime());
}
}

此外,您可以在 ValidationMessages.properties 中添加默认的 AfterTomorrow.message 消息

最后,注释您的字段:

@AfterTomorrow
private Date date;

关于java - 至少 24 小时后的 hibernate validator 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29637732/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com