gpt4 book ai didi

java - 如果我在 jsr 303 中使用两个自定义注释,如果第一个验证失败,如何停止对第二个注释的验证?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:26:44 26 4
gpt4 key购买 nike

我在使用 jsr303 时遇到下一个问题:

我用下一种方式注释了字段:

@NotEmpty(message = "Please specify your post code")
@PostCode(message = "Your post code is incorrect")
private String postCode;

但只有当字段通过了@NotEmpty 的验证时,我才需要检查@PostCode。我如何检查这两个注释?提前致谢

最佳答案

您可以使用验证组来按组执行验证。详见3.4节。 JSR-303中的组和组序 .在您的示例中,您会执行以下操作:

@NotEmpty(message = "Please specify your post code")
@PostCode(message = "Your post code is incorrect", groups = Extended.class)
private String postCode;

并且在验证时,您将为默认组调用验证,然后如果没有发生错误,则为 Extended 组调用验证。

Validator validator = factory.getValidator();

Set<ConstraintViolation<MyClass>> constraintViolations = validator.validate(myClass, Default.class);

if (constraintViolations.isEmpty()) {
constraintViolations = validator.validate(myClass, Extended.class);
}

您可以使用验证组做更多事情。

另一种方法是进行所有验证(如果您负担得起),然后手动过滤掉同一字段的多个验证错误。

关于java - 如果我在 jsr 303 中使用两个自定义注释,如果第一个验证失败,如何停止对第二个注释的验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9535759/

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