Java 超类的条件Bean验证
用例:添加/编辑地址或设置直接送达地址时,表单具有相同的字段。因此,最好将address form类用作传递表单的超类:Java 超类的条件Bean验证,java,bean-validation,Java,Bean Validation,用例:添加/编辑地址或设置直接送达地址时,表单具有相同的字段。因此,最好将address form类用作传递表单的超类: 公共类地址表单{ @空空如也 私有字符串名称; // ... } 公共类DeliveryForm扩展了AddressForm{ 公共静态枚举ShippingType{ 直航, // ... } @NotNull 私人托运式托运式; // ... } 是否可以在类级别创建自定义约束(验证器)来设置是否应验证超类的条件 例如: @ValidateSuperclassIf(fie
公共类地址表单{
@空空如也
私有字符串名称;
// ...
}
公共类DeliveryForm扩展了AddressForm{
公共静态枚举ShippingType{
直航,
// ...
}
@NotNull
私人托运式托运式;
// ...
}
是否可以在类级别创建自定义约束(验证器)来设置是否应验证超类的条件
例如:
@ValidateSuperclassIf(field=“shippingType”,value=“DIRECT\u SHIPPING”)
公共类DeliveryForm扩展了AddressForm{
// ...
}
那么如何实现javax.validation.ConstraintValidator.isValid(对象值、ConstraintValidatorContext上下文)方法呢
是否可以在类中创建自定义约束(验证器)
级别设置是否应验证超级类的条件
还是不
不,你不能。Bean验证(规范)和参考实现Hibernate Validator中都没有这样做的方法
有一些讨论可以跳过超级类型约束(和),但这通常只是禁用它们,而不是添加条件(取消)活动 我是否正确地理解您,您希望基于相同的类对两个不同的表单使用不同的验证规则?在这种情况下,为什么不为不同的验证规则使用验证组?请参阅验证组no。相同的验证,但仅在满足条件时验证超类。然后我必须管理我的字段两次。谢谢你的信息和链接。