快速业务通道

精通Grails: 改变Grails应用程序的外观 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
输出结果

$ grails -version Welcome to Grails 1.1-beta2 - http://grails.org/ Licensed under Apache Standard License 2.0 Grails home is set to: /opt/grails

现在 Grails 1.1 已经安装完成,可以创建新的应用程序了。

创建应用程序

输入 grails create-app blogito 以生成初始的目录结构。转到新的 blogito 目录并输入 grails create-domain-class Entry,以创建表示 blog 条目的类。在 grails-app/domain 找到 Entry.groovy ,并添加清单 3 中的代码:

清单 3. 创建 Entry 类

class Entry {   static constraints = {    title()    summary(maxSize:1000)    dateCreated()    lastUpdated()   }   String title   String summary   Date dateCreated   Date lastUpdated }

每个 Entry 有一个 title 和 summary 字段。将 maxSize 限制范围设置为 1,000 个字符,这会导致 动态地构造 HTML 表单,从而为 summary 字段提供文本区域(而不是简单的文本字段)。

记住,dateCreated 和 lastUpdated 是 Grails 中比较神奇的字段名。这些时间戳字段非常适合 blog 应用程序 — 它们允许在列表的顶部保留最新的 Entry。

在域类准备就绪之后,下一步就是创建一个控制器。输入 grails create-controller Entry。将清单 4 中的代码添加到 grails-app/controllers/EntryController.groovy:

清单 4. 创建 EntryController

class EntryController {    def scaffold = Entry }

精通Grails: 改变Grails应用程序的外观(3)

时间:2011-08-02 IBM Scott Davis

表面上看起来很简单的 def scaffold = Entry 行指示 Grails 为 Entry 类构造其余的支持。您随后 将获得一个条目表,其中 Entry 类中的每个字段都有一个列(以及一个主键 ID 字段和一个乐观锁定的 版本字段)。您还获得完整的 Groovy 服务器页面(Groovy Server Pages,GSP),它们提供很普通但至 关重要的 Create/Retrieve/Update/Delete (CRUD) 功能。

输入 grails run-app 并通过 Web 浏览器访问 http://localhost:8080/blogito。单击 EntryController,然后单击 New Entry。这样做的好处是所有 Entry 字段都出现在创建表单中(如图 1 所示)。但这也有不好的地方 — 用户不应该处理这些时间戳字段。您需要调整默认的模板来解决这个问 题。

图 1. Create Entry 表单中可编辑的时间戳字段

精通Grails: 改变Grails应用程序的外观 - 编程入门网

调整默认模板

您可以输入 grails generate-views Entry 手动地从 GSP 文件中删除 dateCreated 和 lastUpdated 字段,但这不能从根本上解决问题。您可能希望这些字段永远不出现在创建和编辑表单中。最好是在 def scaffold 中更改模板。

输入 grails install-templates。在 src/templates/scaffolding 中查找 create.gsp 和 edit.gsp 。在每个文件中,将 dateCreated 和 lastUpdated 添加到 excludedProps,如清单 5 所示:

清单 5. 从 list.gsp 和 show.gsp 模板中删除时间戳字段

excludedProps = [''version'',          ''id'',          ''dateCreated'',          ''lastUpdated'',          Events.ONLOAD_EVENT,          Events.BEFORE_DELETE_EVENT,          Events.BEFORE_INSERT_EVENT,          Events.BEFORE_UPDATE_EVENT]

重启 Grails,确保时间戳字段不再出现(参见图 2):

图 2. 不包含时间戳字段的表单

精通Grails: 改变Grails应用程序的外观 - 编程入门网

精通Grails: 改变Grails应用程序的外观(4)

时间:2011-08-02 IBM Scott Davis

更改排序的顺序

添加新条目时,默认情况下是根据 ID 对表进行排序的。blog 通常以逆时针顺序对条目进行排序 — 最新的排在前面。在以前版本的 Grails 中,要更改默

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号