超类的条件 Bean 验证
Conditional Bean Validation of Superclass
用例:当 adding/editing 地址或设置直接送货地址时,表单具有相同的字段。所以最好使用地址形式class作为投递形式的超级class:
public class AddressForm {
@NotEmpty
private String name;
// ...
}
public class DeliveryForm extends AddressForm {
public static enum ShippingType {
DIRECT_SHIPPING,
// ...
}
@NotNull
private ShippingType shippingType;
// ...
}
是否可以在 class 级别创建自定义约束(验证器)来设置是否验证超级 class 的条件?
如:
@ValidateSuperclassIf(field = "shippingType", value = "DIRECT_SHIPPING")
public class DeliveryForm extends AddressForm {
// ...
}
那么javax.validation.ConstraintValidator<ValidateSuperclassIf, Object>.isValid(Object value, ConstraintValidatorContext context)
方法如何实现呢?
用例:当 adding/editing 地址或设置直接送货地址时,表单具有相同的字段。所以最好使用地址形式class作为投递形式的超级class:
public class AddressForm {
@NotEmpty
private String name;
// ...
}
public class DeliveryForm extends AddressForm {
public static enum ShippingType {
DIRECT_SHIPPING,
// ...
}
@NotNull
private ShippingType shippingType;
// ...
}
是否可以在 class 级别创建自定义约束(验证器)来设置是否验证超级 class 的条件?
如:
@ValidateSuperclassIf(field = "shippingType", value = "DIRECT_SHIPPING")
public class DeliveryForm extends AddressForm {
// ...
}
那么javax.validation.ConstraintValidator<ValidateSuperclassIf, Object>.isValid(Object value, ConstraintValidatorContext context)
方法如何实现呢?