论坛首页 Java企业应用论坛

猫学Grails之第一个程序

浏览 1626 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-01-24  

最近新浪论坛老不稳定,上传图片总不成功。不过JavaEye这里更厉害,发布的时候总出错,如果放多了图片就一定出错,都白写了。唉...

继续转载猫咪自己的文章。

完成了安装可以开始编写程序了。猫咪是按照书上的例子一步步做的。书上用的是一个赛跑俱乐部的例子。
首先定义领域对象,这里有两个对象,跑道和注册。这是个1:N的关系。

代码如下:

//跑道
class Race {
    String name //名称
   Date startDateTime //开始时间
   String city //城市
   String state 状态
   Float distance
    Float cost
    Integer maxRunners = 10000 //最大人数
   static hasMany = [registrations:Registration] //Race有很多Registration
}
//注册
class Registration {
     Race race //所属跑道
   String name //名字
   Date dateOfBirth
    String gender='F'
    String postalAddress
    String emailAddress
    Date createdAt = new Date()
    static belongTo = Race //表示Registration 属于Race
    static optionals =["postalAddress"] //表示该属性可选
}

 在项目根目录下使用“grails create-domain-class”命令建立对象。执行后提示输入对象名,输入Race。然后用同样方法建立Registration。可以看到,在grails-app的domain目录下,有两个新的文件Race.groovy和Registration.groovy。里面类是空的,把代码拷贝进去。OK。这样领域模型就建立好了。Grails会根据领域对象自动建立数据库表。对象关系映射之类的系统会自动帮你做好。

其中,在Race中的hasMany表示一个跑道有多个注册。同时,在Registration中用belongTo表示注册属于跑道。这样就可以在删除跑道的时候同时删除注册。而删除注册的时候不会删除跑道。

然后创建控制器,我们就可以进行简单的CRUD了。在项目根目录下输入“grails create-controller”,然后输入Race就可以建立Race对象的控制器了。然后再同样建立Registration的。

现在可以在grails-app\controllers下看到RaceController.groovy和RegistrationController.groovy文件。这就是控制器的源文件。同时在test目录中会生成单元测试用例。

现在要让控制器进行对象的CRUD。修改这两个控制器如下:

RaceController.groovy
class RaceController {
    def scaffold = Race
}

RegistrationController.groovy
class RegistrationController {
    def scaffold = Registration
}

 

这样就可以了。Grails看到这两行代码,就可以自动生成全部的网页和代码。但是现在只支持非空验证。下次猫咪会把各种验证加上的。现在先跑一下吧。执行“grails run-app”命令。然后就可以进浏览器看结果了。网址http://localhost:8080/MyMiao/

可以看到,页面上有两个控制器的连接。点击进去就可以进行简单的CRUD操作了。

  • 大小: 62.8 KB
  • 大小: 59.6 KB
  • 大小: 61.4 KB
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics