gpt4 book ai didi

java - 如何将 Bean Validation (JSR 303) 约束显式分配给 bean 属性?

转载 作者:行者123 更新时间:2023-12-01 05:38:17 25 4
gpt4 key购买 nike

我使用 Spring MVC 的 Bean 验证。 Spring 将验证失败绑定(bind)到定义失败注释的 bean 属性,并将基于类的约束绑定(bind)到 bean 本身。

我的问题是我使用了多个类基验证约束,但验证失败不应分配给该类,而应分配给其中一个属性。

例如:

@ScriptAssert(lang = "javascript", script = "_this.passVerify.equals(_this.pass)")
public class MyBean {
@Size(min=6, max=50)
private String pass;

private String passVerify;
}

(但这只是一个示例,请不要告诉我如何编写可以放入传递变量)

我可能需要的是这样的东西:

@ValidationAlias(
constraint = @ScriptAssert(lang = "javascript", script = "_this.passVerify.equals(_this.pass)"),
field = "pass")
public class MyBean {...

所以我的问题是:

  • 是否存在可以解决该问题的方法?
  • 有人有更好的主意吗(如果使用 spring 的话我没有问题)?

最佳答案

@ValidationAlias(
constraint = @ScriptAssert(lang = "javascript", script = "_this.passVerify.equals(_this.pass)"),
field = "pass")
public class MyBean {...

似乎是与ConstraintValidator#isValid的ConstraintValidatorContext结合使用的最佳选择,它允许您自定义错误消息和路径。通过 disableDefaultConstraintViolation 您可以禁用默认错误消息。

关于java - 如何将 Bean Validation (JSR 303) 约束显式分配给 bean 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7797276/

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