快速业务通道

Java开发2.0: 针对Google App Engine的Gaelyk - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
quot;, " from ") % ></b>    <p>    <ol>    <% def wrd = "Groovy"      wrd.each{ letter ->    %>    <li><%= letter %></li>    <% } %>    </ol>    </p>   </body> </html>

Java开发2.0: 针对Google App Engine的Gaelyk(4)

时间:2011-05-15 IBM Andrew Glover

可以看到,Gaelyk 中的 GTPL 文件(或 Gaelyk/Groovy 模板)类似于 JSP: 您可以在 scriptlet 中添加行为(在本例中,添加的行为是 Groovy)。注意, 稍后您也可以使用闭包和引用变量。

保存您的 index.gtpl 文件在 Eclipse 中选择项目的基本目录,单击鼠标右 键,选择 Run As 并选择包含蓝色 G 徽标的 Web Application 选项,如图 3 所 示:

图 3. 作为 Google Web 应用程序运行

默认情况下,此启动程序将在端口 8080 上启动一个本地 Jetty 实例。如果 要更改端口,请选择 Run Configurations 选项并通过插件提供的选项面板配置 端口。

运行 Gaelyk Web 应用程序的本地实例之后,打开一个 Web 浏览器并访问 http://localhost:8080。index.gtpl 的输出应如图 4 所示:

图 4. Hello world!

非常简单,不是吗?

Java开发2.0: 针对Google App Engine的Gaelyk(5)

时间:2011-05-15 IBM Andrew Glover

简单的持久性

罚单系统非常简单。它提供了一个 Web 表单,可用于创建罚单以及在列表中 查看、删除和编辑罚单。我首先将通过 Gaelyk 模板创建一个简单的 HTML 表单 ,并将它命名为 createticket.gtpl。如图 5 所示,这个表单将尝试捕获与各停 车罚单相关的数据:

图 5. 一个简单的罚单表单

表单将提交给一个 groovlet;相应地,在项目的 WEB-INF 目录中创建一个 groovy 文件夹。您的 groovlet 将存放在此处。(您在 “使用 Google App Engine” 中也完成了此操作。创建罚单(create-ticket)表单将提交给一个 createticket.groovy 文件。在新创建的 groovy 目录中创建此文件。

毫无疑问,您可以在 Gaelyk 中使用 JDO 和 Java Persistence API (JPA) 代码,但是也可以采用另外一种方法来与底层数据存储交互:即使用 Google 的 Entity 对象。Gaelyk 团队已凭借一些 Groovy 魔力简化了持久对象的操作,从 而增强了 Entity 对象。

Java开发2.0: 针对Google App Engine的Gaelyk(6)

时间:2011-05-15 IBM Andrew Glover

在本例中,我希望获取通过 createticket.gtpl 页面提交的表单元素,并在 系统中创建一个新罚单。通过使用 Entity 类,我不需要定义一个类似于 POJO 的对象来表示罚单(就像我在 “使用 Google App Engine” 中创建 Triathlon JDO 对象时所做的一样)。我可以采用 Groovy 的方式建立一个罚单模型,并毫 不费力地保存它。

因此,我可以通过 Gaelyk 的 params 对象(Grails 也以某种形式提供了此 对象)获取由表单提交的参数,并创建一个 Entity 实例,如清单 4 所示:

清单 4. 创建一个 Entity

def formatter = new SimpleDateFormat("MM/dd/yyyy") def offensedate = formatter.parse("${params.of_month}/ ${params.of_day}/${params.of_year}") def ticket = new Entity("ticket") ticket.officer = params.officer ticket.license = params.plate ticket.issuseDate = offensedate ticket.location = params.location ticket.notes = params.notes ticket.offense = params.offense

注意,ticket 变量是 Entity 的一个实例。"ticket" String 表示的就是这 种实体。它可以

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