Spring MVC 继承类的验证

2023-11-21

我很难相信我是唯一一个想要这样做的人,但我找不到任何参考资料来帮助我克服障碍。使用 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 {

}

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

我如何注释 Bar 和 Bang 以便Bar.name最大长度为 12 个字符,而邦名最大长度为 8 个字符?

非常感谢, 抢


简而言之,在 Bean Validation 中不可能禁用超类中的约束。这里有一个功能请求https://hibernate.atlassian.net/browse/BVAL-256建议引入 @OverrideConstraint 或 @IgnoreInheritedConstraint 类型的注释。但到目前为止,还不可能做到这一点。

也可以看看http://lists.jboss.org/pipermail/beanvalidation-dev/2012-January/000128.html and https://hibernate.atlassian.net/browse/HV-548.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring MVC 继承类的验证 的相关文章

随机推荐