gpt4 book ai didi

java - 继承类的Spring MVC验证

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:30:17 24 4
gpt4 key购买 nike

我很难相信我是唯一想这样做的人,但我找不到任何引用资料来帮助我克服障碍。使用 Spring MVC 和基于注释的验证(我使用的是框架 4.0 和 Java 1.7),考虑一个简单的类层次结构,如下所示:

abstract class Foo {

@Size(max=10, message = "The name has to be 10 characters or less.")
private String name;

public String getName() {
return this.name;
}

public void setName(String name) {
this.name = name;
}
}

class Bar extends Foo {

}

class Bang extends Foo {

}

如果我在 Bar 或 Bang 的实例中放置一个超过 10 个字符的 name,我会得到我预期的验证错误。不过,假设我仍然希望 Bar 和 Bang 派生自抽象基类 Foo,但我希望子类的名称属性具有不同验证。

如何注释 Bar 和 Bang,使 Bar.name 的最大长度为 12 个字符,而 Bang.name 的最大长度为 8 个字符?

非常感谢,罗布

最佳答案

简短的回答是,在 Bean Validation 中不可能禁用父类(super class)中的约束。这里有一个功能请求 https://hibernate.atlassian.net/browse/BVAL-256建议引入 @OverrideConstraint 或 @IgnoreInheritedConstraint 类型的注解。不过到目前为止,这是不可能的。

另见 http://lists.jboss.org/pipermail/beanvalidation-dev/2012-January/000128.htmlhttps://hibernate.atlassian.net/browse/HV-548 .

关于java - 继承类的Spring MVC验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21841202/

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