快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
非常便捷地搜索罚单。接下来,我将自动为与罚单相关的 Entity 实例分配属性值。现在,ticket.officer 表示通过 Web 页面表单提交的 officer 参数的值。由于该表单包含三个日期字段,我也使用 SimpleDateFormat 创建一个日期实例,并将该值设置为 issueDate。

至此,我已经创建一个用于表示罚单的对象。现在,我要做的就是使用以下代 码保存它:

ticket.save()

现在,我已经持久化了一个罚单,我将把用户定向到一个可查看罚单的页面。 这也非常简单。我只需要定向到 view-ticket Groovlet(以便处理):

redirect "viewticket.groovy?id=${ticket.key.id}" 

如您所见,我已经创建了一个名称为 id 的参数,并将它设置为已保存罚单( 由 Google App Engine 生成)实例的键。可见,create-ticket Groovlet 非常 简明和强大 — 这得益于 Gaelyk。

简易视图

在上一个示例中,当我创建了 ticket 实例之后,我继续将请求重定向到另一 个 Groovlet — 它可以简化罚单的查看过程。在此 Groovlet 中,我编写了一个 Google App Engine “read”。传递的 id 将用于查找新创建的实例。在本例中 ,我将使用 Google 的 KeyFactory,它用于创建 Google 的 Key 对象的实例。 然后,Key 将用于通过 datastoreService 查找相应的罚单实例,而 Gaelyk 已 将它们添加到框架中的任何 Groovlet 实例中,如清单 5 所示:

清单 5. 查看 Entity

import com.google.appengine.api.datastore.KeyFactory if (params["id"]) {   def id = Long.parseLong(params["id"])   try {    def key = KeyFactory.createKey("ticket", id)    def ticket = datastoreService.get(key)    request.setAttribute "ticket", ticket    forward "viewticket.gtpl"    } catch (Throwable t) {    //forward to some error page...    } } else {   forward "index.gtpl" }

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

时间:2011-05-15 IBM Andrew Glover

找到相应的 ticket 之后,罚单将被添加到 HTTP request 对象(它已经出现 在 Groovlet 中),然后将处理转交给 viewticket.gtpl 页面。与 Web 应用程 序中的任何其他 JSP 一样,这个 Web 页面将显示与传入罚单相关的相应属性。

从清单 6 中可以看出,Gaelyk 支持 includes。也就是说,在您的 .gtpl 文 件中,您可以包括其他文件,就像普通 JSP 文件一样。同样,所有 .gtpl 文件 都有一个 HTTP Request 对象的实例可用(通过 request 变量)。

清单 6. 查看 Entity GTPL

<% include "/WEB-INF/includes/header.gtpl" %> <% def ticket = request.getAttribute("ticket") % > <div class="info">   <h2>Parking Ticket</h2>   </div> <table> <tr>   <th>Issuing Officer</th>   <th>Vehicle Plate</th>   <th>Date</th>   <th>Offense</th>   <th>Location</th>   <th>Notes</th>   </tr>   <tr>   <td>${ticket.officer} </td>   <td>${ticket.license}</td>   <td>${ticket.issuseDate}</td>   <td>${ticket.offense}</td>   <td>${ticket.location}</td>   <td>${ticket.notes}</td>   </tr>   </table> <% include "/WEB-INF/includ

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