首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

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

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

安装 Grails 1.1Grails 在 Java 1.5 或 1.6 上运行表现最佳。通过命令提示符输入 java -version,确保 Java 版本是比较新的。
Java 1.5 或 1.6 就绪之后,安装 Grails 的步骤就很简单了:
  • 从 Grails 站点  grails.zip 文件。
  • 解压缩 grails.zip。
  • 创建一个 GRAILS_HOME 环境变量。
  • 将 GRAILS_HOME/bin 添加到 PATH。
如果您使用的应用程序是使用上一版本的 Grails 编写的,则可以输入 grails upgrade 将其迁移到最新的版本。但如果需要处理多个版本的 Grails,应该怎么办呢?  
如果运行的是 UNIX®-esque OS(UNIX、Linux®,或 OS X)系统,通过将 $GRAILS_HOME 环境变量指向 symlink 就可以轻松处理 Grails 的多个版本。在我的系统上,将 GRAILS_HOME 指向 /opt/grails。这个步骤完成之后,通过快捷的 ln -s 就可以在各个版本之间切换,如清单 1 所示:
清单 1. 为 UNIX、Linux 或 Mac OS X 系统上的 $GRAILS_HOME 创建一个 symlink
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ ln -s /opt/grails-1.1-beta1 grails

$ ls -l | grep "grails"
lrwxr-xr-x   1 sdavis  admin        17 Dec  5 11:12 grails -> grails-1.1-beta1/
drwxr-xr-x  14 sdavis  admin       476 Nov 10  2006 grails-0.3.1
drwxr-xr-x  16 sdavis  admin       544 Feb  9  2007 grails-0.4.1
drwxr-xr-x  17 sdavis  admin       578 Apr  6  2007 grails-0.4.2
drwxr-xr-x  17 sdavis  admin       578 Jun 15  2007 grails-0.5
drwxr-xr-x  19 sdavis  admin       646 Jul 30  2007 grails-0.5.6
drwxr-xr-x  18 sdavis  admin       612 Sep 18  2007 grails-0.6
drwxr-xr-x  19 sdavis  admin       646 Feb 19  2008 grails-1.0
drwxr-xr-x  18 sdavis  admin       612 Apr  5  2008 grails-1.0.2
drwxr-xr-x  18 sdavis  admin       612 Oct  9 21:46 grails-1.0.3
drwxr-xr-x  18 sdavis  admin       612 Nov 24 20:43 grails-1.0.4
drwxr-xr-x  18 sdavis  admin       612 Dec  5 11:13 grails-1.1-beta1




在 Windows® 系统上,最好是直接更改 %GRAILS_HOME% 变量。在变更之后,不要忘记重新启动现有的命令提示符。
输入 grails -version 以确保使用了最新的版本,并且正确设置了 GRAILS_HOME 变量。现在,输入应该如清单 2 所示:
清单 2. grails -version 的输出结果
1
2
3
4
$ 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 类
1
2
3
4
5
6
7
8
9
10
11
12
13
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 字段提供文本区域(而不是简单的文本字段)。
下一篇文章:为 blog 条目添加内容在下一篇文章中,将添加一个能够保存 blog 条目的实际内容的 body 字段。在本文中,我忽略了 body 字段,因为要完整地实现它,必须先理解 Grails 如何处理用户身份验证和文件上传。Blogito 允许终端用户上传各种类型的数据 — HTML、图像,甚至 MP3。

记住,dateCreated 和 lastUpdated 是 Grails 中比较神奇的字段名。这些时间戳字段非常适合 blog 应用程序 — 它们允许在列表的顶部保留最新的 Entry。
在域类准备就绪之后,下一步就是创建一个控制器。输入 grails create-controller Entry。将清单 4 中的代码添加到 grails-app/controllers/EntryController.groovy:
清单 4. 创建 EntryController
1
2
3
class EntryController {
    def scaffold = Entry
}




表面上看起来很简单的 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 表单中可编辑的时间戳字段
返回列表