`
zjnbshifox
  • 浏览: 316940 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

Grails 0.1初试

    博客分类:
  • Java
阅读更多
期待了很久,今天看Grails的Rss突然发现已经不是原来的空白了,真是有点兴奋,Groovy早就已经发布了1.0版,可是Grails确迟迟没有消息,体验过Ror的我,很早就想体验一下Grails的感觉了,不过以前一直都是需要通过源代码编译的,我这个人一直都是比较懒的,所以……,呵呵,闲话少说,马上体验一下:
下载:
http://grails.codehaus.org/Download
1、下载后解压缩到一个目录,设置GRAILS_HOME环境变量指向该目录,并加入到PATH环境变量里面,另外需要先在环境变量里面设置JAVA_HOME,另外 GRAILS自带了ANT的安装,原来一直在用eclipse集成的,现在顺便也把ANT_HOME也建立起来的:)
2、运行grial create-app
会提示应用程序的名称,输入一个,如example,会在当前目录下建立一个example的目录,以及下一级的子目录,介绍几个需要用到的目录
grails-app/conf/这里存放的是整个项目的环境变量配置信息,ApplicationDataSource.groovy配置的是数据源的信息,ApplicationBootStrap.groovy配置的是启动和停止项目的时候需要的操作
grails-app/controller目录存放的是控制器,相当于action除此之外还有i18n,views
domain等目录,关于orm的内容全部放在domain目录,GRAILS默认带了hsql的驱动,就拿他来试一下:ApplicationDataSource.groovy的内容如下:
class ApplicationDataSource {
   @Property boolean pooled = true
   @Property String dbCreate = "create-drop" // one of 'create', 'create-drop','update'
    //这里的create-drop会在每次重新启动项目的时候,把原来的数据删除,重建表的结构
   @Property String url = "jdbc:hsqldb:mem:testDB"
   @Property String driverClassName = "org.hsqldb.jdbcDriver"
   @Property String username = "sa"
   @Property String password = ""
}
3、在cmd下,进入该项目的主目录,即example目录,运行
grails create-domain-class,会提示建立domain class的名字,输入Book,就会在grails-app/domain下生成一个Book.groovy,默认的内容是
class Book {
@Property Long id
@Property Long version

}
添加两个其他的属性,最终的结果如下:
class Book {
@Property Long id
@Property Long version

@Property String title
@Property String author
}
这样一个映射类就建立好了,
4、建立控制器,运行grails create-controller,会提示输入控制器的名字,在这里输入BookController,GRAILS和ROR一样都是用约定命名的,在Ror中一个Book的domain class对应着一个名字为books的表,BookController的内容为
class BookController {
    @Property index = {
        redirect(action:list)
     }
    @Property list = {
        [ books : Book.list() ]
     }
}
这样在浏览器里面就可以通过/example/book/以及/example/book/list的方式来调用,index定义的是默认的动作,所以可以省略。
4、建立view,在grails-app/views/目录下建立一个目录book,在该目录下建立一个文件list.gsp,与controller中的方法名字一致,内容如下
java 代码
 
  1. class BookController {   
  2.     @Property index = {   
  3.         redirect(action:list)  
  4.      }   
  5.     @Property list = {   
  6.         [ books : Book.list() ]  
  7.      }  
  8. }  

此时运行项目grails run-app,会启动GRAILS自带的Jetty作为web容器,默认端口是8080,可以通过grails -Dserver.port=9000 run-app改变端口,此时在浏览器里输入http://localhost:8080/example/book是没有数据的,因为数据库里没有数据,
可以通过修改ApplicationBootStrap.groovy文件,在其@Property Closure init {}块中加入
    new Book(author:"world",title:"haha").save()
    new Book(author:"中国",title:"hello").save()

这样再运行就能显示两条记录了:)
5、稍微在修改一下list.gsp,加入一下内容
xml 代码
 
  1. <html>  
  2. <head>  
  3. <title>Book list</title>  
  4. </head>  
  5. <body>  
  6.     <h1>Book list</h1>  
  7.     <table>  
  8.         <% books.each {%>  
  9.          <tr><td>${it.title}</td><td>${it.author}</td></tr>  
  10.         <%}%>  
  11.     </table>  
  12. </body>  
  13. </html>  


然后在BookController下面加入一个create方法,和form中的方法对应,处理提交后的操作
    @Property create = {
        def b =  new Book()
        b.properties = params
        b.save()      
        redirect(action:list)
    }
或者也可以
        new Book(author:params["author"],title:params["title"]).save()
        b.save
对于post,中文支持良好,但是Get方式中,传入的中文会变成乱码,不过没有在文档中找到相应的,看来需要自己解决(嗯,嗯,以后再说,哈:))

最后的总结,第一感觉grails还不错,呵呵,和ror比较类似,又有和java类似的语法,集成了spring,hibernate,由于现在用的只是皮毛,太深层次的话说不出来,可能现在最要紧的是IDE的支持了吧,Ror的RadRails试用过,还是比较方便的,深层次的功能,慢慢再说,(不知道什么时候呢,呵呵:))
分享到:
评论
1 楼 山风小子 2008-02-09  
现在已经发布Grails1.0了

相关推荐

    grails-acegi-0.1.zip

    《Grails Acegi 0.1插件:深入解析与应用》 在Web开发领域,Grails作为一种基于Groovy语言的敏捷开发框架,以其高效、简洁的特性深受开发者喜爱。而Acegi插件则是Grails中用于权限管理和安全控制的重要组件,它借鉴...

    Grails Grails Grails

    **Grails 框架详解** Grails 是一个基于 Groovy 语言的开源Web应用程序框架,它构建在Java平台之上,旨在简化开发过程并提高生产力。Grails 的设计深受Ruby on Rails的影响,提供了MVC(模型-视图-控制器)架构模式...

    Eclipse下搭建Grails项目

    【Grails项目搭建详解】 Grails是一个基于Groovy语言的开源Web应用框架,它简化了开发过程,尤其适合快速构建动态网站。在Eclipse中搭建Grails项目可能相对复杂,但通过以下步骤,即使是初学者也能顺利进行。 1. *...

    Grails权威指南 Grails权威指南

    《Grails权威指南》是一本全面深入探讨Grails框架的专著,旨在帮助读者掌握这一强大的Web开发工具。Grails是一种基于Groovy语言的开源框架,它为构建现代、高效的应用程序提供了简洁高效的解决方案。本指南针对不同...

    grails-用户手册

    《Grails用户手册》 Grails,作为一个基于Groovy语言的开源Web应用框架,深受开发者喜爱,它简化了Java开发的复杂性,提供了强大的MVC(Model-View-Controller)架构,以及丰富的插件系统。这份用户手册将帮助你...

    eclipse开发grails插件

    对于Grails开发,我们需要的是Eclipse中的Grails插件,它能够提供对Grails项目的创建、运行、调试等一系列功能。 **Grails**是基于Groovy语言的全栈式Web开发框架,它借鉴了Ruby on Rails的设计理念,提供了快速...

    grails中文入门简介

    Grails是一个基于Groovy语言的全栈框架,它遵循约定优于配置的原则,并且紧密集成Spring和Hibernate等流行的Java库,简化了开发流程。Grails在IT行业中尤其受到重视,因为它能够帮助开发者快速搭建并部署基于MVC模式...

    the definitive guide to grails 2

    《Grails 2 的终极指南》是一本深入探讨Grails框架精髓的专业书籍,该书以英文撰写,旨在为读者提供全面、深入的Grails框架学习资料。Grails框架基于Groovy语言,是一种高度动态、敏捷的Java应用开发框架,它简化了...

    Grails 中文参考手册

    《Grails 中文参考手册》是一本全面介绍Grails框架的指南,旨在帮助开发者快速上手并深入理解Grails的各个核心概念和技术。Grails是一个基于Groovy语言的开源Web应用框架,它提供了高效的开发环境和强大的功能,使得...

    eclipse插件grails(groovy)

    Eclipse 插件 Grails(Groovy)是一个强大的开发工具,它使得在Eclipse环境中进行Groovy和Grails应用的开发变得更为便捷。Groovy是一种动态、面向对象的编程语言,而Grails则是一个基于Groovy的开源Web应用框架,...

    grails快速开发web

    ### Grails 快速开发 Web 应用程序 #### 一、Grails 概述 Grails 是一种基于 Groovy 的开源应用框架,用于简化 Web 应用程序的开发过程。它采用约定优于配置的原则,这使得开发者可以更快地创建功能丰富的 Web ...

    Grails中文参考手册

    **Grails 概述** Grails 是一个基于 Groovy 语言的开源 web 应用程序框架,它构建在 Java 平台上,旨在提高开发效率,简化常见 Web 开发任务。Grails 遵循 Model-View-Controller (MVC) 架构模式,允许开发者快速...

    grails login

    **Grails登录系统详解** Grails是一个基于Java的开源Web应用程序框架,它使用Groovy语言进行开发,提供了高效、简洁的编程模型。在Grails中实现用户登录功能是构建任何Web应用的基础,它确保了数据的安全性和用户...

    Groovy和Grails配置方法

    ### Groovy和Grails配置方法 #### 一、Groovy与Grails简介 Groovy是一种强大的面向对象编程语言,它运行在Java平台上,并且能够直接与Java代码进行交互。Groovy支持函数式编程特性,拥有丰富的语法糖以及简洁的...

    grails 中文文档+grails-fckeditor-0.9.5.zip插件

    《Grails技术详解:中文文档与Fckeditor-0.9.5插件解析》 Grails,作为一款基于Groovy语言的开源Web应用框架,以其高效、简洁的特性深受开发者喜爱。它集成了许多Java EE的功能,同时简化了开发流程,使得开发人员...

    grails-2.4.4.zip

    《Grails 2.4.4 框架深度解析》 Grails 2.4.4 是一个基于Java的开源Web应用框架,它利用Groovy语言的强大特性,为开发者提供了一种高效、灵活的开发环境。这个压缩包“grails-2.4.4.zip”包含了完整的Grails 2.4.4...

    grails中文参考手册

    《Grails中文参考手册》是针对Groovy编程语言构建的Web应用框架——Grails的一份详尽学习资料。Grails以其高效、灵活和强大的特性,成为开发人员在Java平台上构建Web应用的热门选择。这份手册旨在帮助初学者快速上手...

Global site tag (gtag.js) - Google Analytics