读书人

Jason Rudolph 关于Groovy的耶稣教程:

发布时间: 2012-11-11 10:07:57 作者: rapoo

Jason Rudolph 关于Groovy的新教程:Grails + EJB Step by Step (增加关系)
本文转引自http://www.infoq.com/cn/articles/grails-ejb-tutorial
作者 Jason Rudolph 译者 胡键
这是grails很好的一个入门教程,对比JAVA应用可以省略大量的代码
下面是最关键的关系管理部分


步骤5 —— 增加关系管理
关于关系管理,我们对应用有哪些期望?嗯,要我说,我们应该能……

查看分配给某个员工的所有计算机。
查看单个计算机的细节(包括它的分配状况)。
能增加、修改和删除计算机(包括它的分配状况)。
准备好了吗?让我们开始吧。

在员工页列出计算机没有什么意义,因此让我们把这列移除。打开grails-app/views/employeeBean/list.gsp,并移除该列。现在,刷新浏览器,验证修改。
【附件1】

接下来,点击显示(Show),查看员工的细节。

【附件2】
最少,我们需要整理显示每个计算机的文本。但是,可能我们根本就不愿直接在这个页面上看到计算机。与其在该页显示计算机,不如包含一个指向该员工的计算机列表的链接。

打开该页模板(即,grails-app/views/employeeBean/show.gsp),移除显示当前员工计算机列表的行。接着增加以下行,链接到显示该员工的计算机列表的单独页面。


通过给标签增加optionValue参数,选择框中的文本会更具有含义。


现在,视图被修正了,但是更新(update)功能还需要除了视图之外的一点努力。我们同样需要增强控制器(即ComputerBeanController.groovy)。如果用户改变关联了计算机的员工,我们需要确保正确地持久化这些关联的变化。换句话说,我们需要从当前的员工去除关联,而将它分配给新的员工。这个增强型的更新方法需要一点额外的代码行。
def delete = {    def computerBean = ComputerBean.get( params.id )    if(computerBean) {           computerBean.employeeBean.getComputers().remove(computerBean)           computerBean.delete()           flash.message = "ComputerBean ${params.id} deleted."           redirect(action:list)    }    else {           flash.message = "ComputerBean not found with id ${params.id}"           redirect(action:list)    }}

看起来Jane的新MacBook被回收了。我们应该删除它吗?


此时,我们完成它了!使用快捷的几步,我们现在已经有了一个功能完备的Web应用,它构建于我们的实体Bean上。当然,它还需一些打磨。但至少,作为一个可工作的原型,它已经足够了。尽管仍需改良,但它是个完全能发展成完美产品的一个原型。

读书人网 >网络基础

热点推荐