Java 开发 2.0: 针对 Google App Engine 的 Gaelyk
2010-01-26 00:00:00 来源:WEB开发网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"
}
找到相应的 ticket 之后,罚单将被添加到 HTTP request 对象(它已经出现在 Groovlet 中),然后将处理转交给 viewticket.gtpl 页面。与 Web 应用程序中的任何其他 JSP 一样,这个 Web 页面将显示与传入罚单相关的相应属性。
更多精彩
赞助商链接