Grails 数据验证与操作全解析
1. 约束定义基础
在 Grails 中,约束是保证数据有效性的重要手段。以下是一个约束定义的示例:
static constraints = {
cardNumber(creditCard: true, blank: false)
color(inList: ['Red', 'Green', 'Blue'])
email(unique: true, size: 5..100)
}
第一行调用了 cardNumber 方法,参数是一个 Map [creditCard: true, blank: false] 。这之所以可行,是因为评估约束块的 Grails 代码会将 org.codehaus.groovy.grails.validation.ConstrainedPropertyBuilder 实例注册为闭包的委托,然后调用该闭包。由于这是有效的 Groovy 代码,缺失的方法和属性会被分派给构建器,构建器会将方法调用和 Map 值转换为关联属性的约束规则。参数 Map 中的每个键值对都定义了一个约束及其数据。这些约束通过实现 Grails org.codehaus.groovy.grails.validation.Constraint 接口的类来实现,例如 NullableConstraint 、 MaxConstraint 和 InListConstra
超级会员免费看
订阅专栏 解锁全文
81

被折叠的 条评论
为什么被折叠?



