Grails Quick Reference 1.1
需积分: 0 164 浏览量
更新于2009-08-02
收藏 106KB PDF 举报
### Grails 快速参考指南 1.1:领域模型与数据验证
#### 领域类(Domain Class)
在Grails框架中,领域模型是应用程序的核心组件之一,用于表示数据库中的实体。Grails通过使用GORM(Groovy on Rails ORM)提供了对持久化的支持,使得开发人员可以轻松地定义和操作数据模型。
- **`Book` 类**:这是一个典型的Grails领域类示例。`Book` 实现了 `Comparable` 接口,以便根据 `releaseDate` 进行排序。它包含了如 `title`、`year`、`price` 和 `releaseDate` 等属性,以及与之相关的其他对象,如 `Author` 和 `Publisher`。`static` 块中的 `belongsTo` 和 `hasMany` 关系指定了与其他领域的关联。
- **`Author` 类**:表示作者实体,拥有一个 `name` 属性和两个 `hasMany` 关联:`books` 和 `coBooks`,分别对应主作者和合著者书籍。
- **`Publisher` 类**:代表出版社,使用了 `static mapping` 块来定义数据库映射策略,包括表名、缓存策略、排序、版本控制等高级配置。
#### 数据验证
数据验证是Grails框架中的一个重要特性,用于确保数据的完整性和一致性。验证规则定义在领域类的 `static constraints` 块内,具体规则如下:
- **`blank`**:检查字段是否为空或只包含空格。例如,`title` 字段不允许为空或仅包含空格。
- **`creditcard`**:验证信用卡号格式。例如,`cardNo` 应当符合标准信用卡号码的格式。
- **`email`**:验证电子邮件地址的格式。例如,`contactEmail` 应当是一个有效的电子邮件地址。
- **`inList`**:验证字段值是否在指定列表中。例如,`name` 的值应当在预定义的列表 `['A','B','C']` 中。
- **`matches`**:使用正则表达式验证字段格式。例如,`name` 只能包含字母。
- **`max`**:限制字段的最大值。例如,`percentage` 的最大值为100。
- **`maxSize`**:限制集合的最大大小。例如,`children` 集合的大小不能超过10。
- **`min`**:设定字段的最小值。例如,`price` 的最小值为0.5。
- **`minSize`**:设定集合的最小大小。例如,`children` 集合至少要有5个元素。
- **`notEqual`**:确保字段值不等于指定值。例如,`login` 的值不能等于 'root'。
- **`nullable`**:允许字段值为 `null`。例如,`name` 字段可以接受 `null` 值。
- **`range`**:限定字段值的范围。例如,`age` 的值必须在1到150之间。
- **`scale`**:设定小数点后位数。例如,`price` 的小数点后最多两位。
- **`size`**:限制字符串长度或集合大小。例如,`children` 集合的大小应在5到10之间。
- **`unique`**:确保字段值在整个应用中唯一。例如,`login` 字段的值在所有实例中都是唯一的。
- **`url`**:验证URL格式。例如,`homePage` 应当是一个有效的URL。
- **`validator`**:自定义验证逻辑。例如,`even` 验证器确保值是偶数,或者 `pwd` 验证器检查密码与确认密码是否一致。
通过这些验证规则,Grails提供了一套强大的工具来确保数据的正确性,简化了开发流程并提高了应用程序的健壮性。