快速业务通道

精通Grails: GORM - 有趣的名称,严肃的技术 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
节将会看到如何添加更具描述性的标签。

图 2. 一对多关系:多方

精通Grails: GORM - 有趣的名称,严肃的技术 - 编程入门网

裸对象

前面刚刚了解了在 Airline POGO 上添加提示(静态的 hasMany)如何影响表在幕后的创建方式以及 前端生成的视图。这种使用裸对象 修饰域对象的模式(请参阅 参考资料)在 Grails 中应用得非常广泛 。将这条信息直接添加到 POGO 内,就消除了对外部 XML 配置文件的需求。所有信息都在一个位置内, 可以显著提高生产率。

例如,如果想消除显示在组合框中的主键的泄漏,只要在 Airline 类中添加 toString 方法就可以, 如清单 6 所示:

清单 6. 在 Airline 中添加 toString 方法

class Airline {   static hasMany = [trip:Trip]   String name   String url   String frequentFlyer   String notes   String toString(){    return name   } }

精通Grails: GORM - 有趣的名称,严肃的技术(4)

时间:2011-07-25 IBM Scott Davis

从现在开始,在组合框中显示的值就是航线的名称。这里真正酷的地方在于:如果 Grail 依然在运行 ,那么只要保存 Airline.groovy,修改就会生效。请在浏览器中新建一个 Trip,看看这样做的效果。因 为视图是动态生成的,所以能够迅速地在文本编辑器和浏览器之间来回切换,直到看到合适的视图 — 不 需要重新启动服务器

现在我们来解决字段按字母顺序排序的问题。要解决这个问题,需要向 POGO 添加另一个配置: static constraints 块。请按清单 7 所示的顺序将字段添加到这个块(这些约束不影响列在表中的顺序 — 只影响在视图中的顺序)。

清单 7. 修改 Airline 中的字段顺序

class Airline {   static constraints = {    name()    url()    frequentFlyer()    notes()    }   static hasMany = [trip:Trip]   String name   String url   String frequentFlyer   String notes   String toString(){    return name   } }

将修改保存到 Airline.groovy 文件,在浏览器中新建一个航线。现在里面的字段应该按照在清单 7 中指定的顺序出现,如图 3 所示:

图 3. 自定义的字段顺序

精通Grails: GORM - 有趣的名称,严肃的技术 - 编程入门网

在您准备责备我没有必要在 POGO 中输入两次字段名称而违背 DRY 原则(不要重复你自己)时(请参 阅 参考资料),请稍等一下,因为将它们放在独立的块内有很好的理由。清单 7 的 static constraints 块内的大括号不会总是空白。

精通Grails: GORM - 有趣的名称,严肃的技术(5)

时间:2011-07-25 IBM Scott Davis

数据验证

除了指定字段顺序, static constraints 块还允许在里面放置一些验证规则。例如,可以在 String 字段上施加长度限制(默认是 255 个字符)。这样就能确保 String 值与指定的模式(例如电子邮件地 址或 URL)匹配。甚至还能将字段设置为可选或必需的。关于可用的验证规则的完整列表,请参阅 Grails 的联机文档(请参阅 参考资料)。

清单 8 显示的 Airline 类中在约束块内添加了验证规则:

清单 8. 将数据验证添加到 Airline

class Airline {   static constraints = {    name(blank:false, maxSize:100)    url(url:true)    frequentFlyer(blank:true)    notes(maxSize:1500)    }   static hasMany = [trip:Trip]   String name   String url   String frequentFlyer   String notes   String toString(){    return name   } }

保存修改后的 Airline.groovy 文件,在浏览器中新建一条航线。如果违反了验证规则,会收到警告 ,如图 4 所示:

图 4. 验证警告

精通Grails: GORM - 有趣的名称,严肃的技术 - 编程入门网

可以在 grails-app/i18n 目录的 messages.properties 文件中对警告消息进行自定义。请注意,默 认的消息已经用多种语言进行了本地化(请参阅 Grail 联机文档中的验证一

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号