5

参考文档说尺寸限制:

使用 Groovy 范围来限制集合或数字的大小或字符串的长度。

当我对整数设置大小约束时,我收到警告

域类 TheClass 的属性 [prop] 具有类型 [java.lang.Integer] 并且不支持约束 [size]。在验证期间不会检查此约束。

医生错了吗?

我知道我可以使用范围,但通常能够更容易地指定数字中的位数而不是实际值(比如社会保险号必须有 7 位或其他任何数字,而不是设定一个范围1000000 - 9999999)。

4

4 回答 4

2

如果您想要位数,请确保它是正数并且具有一定的长度:

myInteger( validator: {
   return it > 0 &&  (it.toString.length) == 7
})
于 2009-08-20T20:25:16.450 回答
2

我在搜索 JIRA 时找到了答案:http: //jira.codehaus.org/browse/GRAILS-947。文档是错误的。

我们不再需要数字字段的 minSize、maxSize 和大小约束,因为此功能分别在 min、max 和 range 约束上。因此,我们将这些约束(仅适用于数字字段)在 0.5 中标记为已弃用,并将在 0.6 中将其删除。

看起来这取决于自定义验证器。

于 2009-08-21T08:45:48.437 回答
1

您还可以使用 max 来约束像 myIntProp(max:9999999) 这样的整数

于 2009-08-21T00:29:45.967 回答
0

正如您在Jira链接中指出的那样,我认为正确的答案是对整数使用范围约束。

我认为这是一个简单的替换sizerange.

于 2013-06-12T22:41:48.410 回答