gpt4 book ai didi

javax 验证大于或小于其他属性

转载 作者:行者123 更新时间:2023-11-30 10:15:17 24 4
gpt4 key购买 nike

关于 javax.validation

  @NotNull(message = "From can't be null")
@Min(value = 1, message = "From must be greater than zero")
private Long from;
@NotNull(message = "To can't be null")
@Min(value = 1, message = "To must be greater than zero")
private Long to;

我还想验证 FROM 应该小于 TO 并且 TO 应该大于 FROM ?我们如何使用 javax 验证的注释来做到这一点?

最佳答案

您需要一个自定义的跨域验证注释。

一种方法是使用 @YourCustomAnnotation 注释您的自定义类。

YourCustomAnnotationValidator 中,您可以访问您的值,因此您可以在那里实现您的逻辑:

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Constraint(validatedBy = DateValidator.class)
public @interface RangeCheck {

String message();

Class<?>[] groups() default {};

Class<? extends Payload>[] payload() default {};
}

public class RangeCheckValidtor implements ConstraintValidator<RangeCheck, YourDto> {

@Override
public void initialize(RangeCheck date) {
// Nothing here
}

@Override
public boolean isValid(YourDto dto, ConstraintValidatorContext constraintValidatorContext) {
if (dto.getFrom() == null || dto.getTo() == null) {
return true;
}
return from < to;
}
}

然后用@RangeCheck标记你的YourDto类:

@RangeCheck(message = "your messgae")
public class YourDto {
// from
// to
}

或者简单地手动验证两个字段的关系。

关于javax 验证大于或小于其他属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50502163/

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