JSR303 - 仅在填充时验证

时间:2012-10-18 23:32:30

标签: java spring bean-validation

我在Java Bean(千克)中有一个非必需的字段,但如果用户输入它,则显然需要是一个数字。

JSR303注释是否可以强制执行该规则?我试过了

@Min(value=0)

但这显然不允许空,这是允许的。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

文档说空值被认为是有效的。参见

http://jackson.codehaus.org/javadoc/bean-validation-api/1.0/javax/validation/constraints/Min.html

您需要使用对象类型(整数)而不是基本类型。如果你有问题,请告诉我们你的豆。

答案 1 :(得分:0)

您无法使用Bean Validation 1.0进行OR合成。 Hibernate Validator有一个允许你这样做的功能。它被称为“自定义约束的布尔组合” - http://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/#d0e3701

所以你需要一个自定义约束,你显然不会符合标准,但是它有效。

对于Bean Validation 1.1,讨论布尔组合是否应该使其成为标准(BVAL-260),但不能保证。