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

构建您的第一个 Grails 应用程序(3)

构建您的第一个 Grails 应用程序(3)

应用程序的实际效果在命令行输入 grails run-app。控制台在快速显示一批 Log4j 消息之后,将显示如下所示的消息:
1
Server running. Browse to http://localhost:8080/trip-planner




如果端口 8080 上已经有一个服务器在运行,那么将显示一条核心转储信息:
1
Server failed to start: java.net.BindException: Address already in use




可以通过两种方法轻松更改 Jetty 所使用的端口。可以通过输入 grails -Dserver.port=9090 run-app 临时进行更改。如果要使更改持久,可以从 $GRAILS_HOME/scripts/Init.groovy 中找出以 serverPort 开头的那一行,并更改值:
1
2
serverPort = System.getProperty('server.port') ?
             System.getProperty('server.port').toInteger() : 9090




使 Grails 在您选择的端口上运行之后,在 Web 浏览器中输入 URL。应该可以看到一个欢迎屏幕,其中列出所有的控制器,如图 1 所示:
图 1. Grails 应用程序的欢迎屏幕单击 TripController 链接。您有一个完整的 CRUD(创建、读取、更新、删除)应用程序可以使用。
使用图 2 所示的页面创建新的 trip:
图 2. Create Trip 页面使用图 3 所示的页面编辑 trip:
图 3. Trip List 页面准备和运行这个应用程序要花多长时间?需要多少代码?下面就是答案:
  • 按下 Ctrl-C,关闭 Grails。
  • 输入 grails stats。
屏幕上将显示输出:
1
2
3
4
5
6
7
8
9
+----------------------+-------+-------+
| Name                 | Files |  LOC  |
+----------------------+-------+-------+
| Controllers          |     1 |    66 |
| Domain Classes       |     1 |     8 |
| Integration Tests    |     1 |     4 |
+----------------------+-------+-------+
| Totals               |     3 |    78 |
+----------------------+-------+-------+




只需不到 100 行代码,就可以实现应用程序的所有功能。看起来还不错。不过,最后我还要再展示一个窍门。
生成控制器和视图是一项很好的学习体验,而磁盘上的物理文件则有助于说明各个部分是如何连接在一起的。不过在此需要做一件事:删除 TripController 类中的内容,并用下面的内容替代:
1
2
3
class TripController{
  def scaffold = Trip
}




这行代码告诉 Grails 像对待前一个控制器一样,在运行时在内存中动态地生成所有那些 list、save 和 edit 动作。仅仅 3 行代码就可以产生和 66 行代码一样的行为。
再次输入 grails run-app。是的 — 所有数据都没有了。不必担心。按下 Ctrl-C 关闭 Grails。这一次,输入 grails prod run-app。现在处于生产模式下,这意味着在服务器重新启动之前,数据已被保存。通过一连串的单击进入 TripController,保存一些记录。应用程序的行为应该没有什么不同。您已经知道,在浏览器中看到的一切,是由 15 行代码驱动的,可知 Grails 的威力有多大。
返回列表