欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

grails 初体验

程序员文章站 2024-03-21 14:49:04
...

grails 初体验
根据grails 入门指南,做完了一个小例子,初步感觉grails和rails还是很像的,都是约定优于配置
grails是构建于spring、hibernate和sitemesh的框架之上,采用MVC模式.看其来和我们常用的SSH架构差不多.
主要是domain class(也就是entity) 封装的功能很强大,把之前的dao层的功能全部封装到里面了,这样省了不少代码
View 用的是gsp 和jsp差不多,封装了一些常用的标签,不过grails开发标签很轻松,按照规范在grails-app/taglib目录下,命名规范为XXXTagLib.groovy,就可以直接用了,不需要配置
Controller 和我们平的Action几乎一样,参数的封装更简洁一些
grails用jvm为运行环境,所以只有要能部署java selervet的容器都可以部署grails.
从这个简单的应用看grails比java现有的一些web框架很有优势,开发效率很高,而且grails可以调用java现有的一些组件,两都结合开发应该是个不错的方向.
当然grails还很年轻,真的整合起来,估计问题比较多,而且两种语言混合,问题定位估计会麻烦.所以目前还没听说有那些大型应用采用grails的.

 

grails 强大的render 方法

  • 直接返回简单的纯文本字串

class FooController{
...
    def ajaxResponse = {
        ...
        render("This is an Ajax response.")
    }
 
  • 指定返回内容的格式和编码

render(text:"<xml>some xml</xml>",contentType:"text/xml",encoding:"UTF-8")
 
  • 返回模板内容

render(template:"feeds", model:[feeds:feeds], contentType:"text/html", encoding:"UTF-8")
 
  • 返回JSON,直接自动转换一个object为JSON

 

import grails.converters.*
...
def jsonObj = [object:[collection:[[name:‘value1′],[name:‘value2′]]]]
render jsonObj as JSON
 
  • 返回JSON,通过JSON builder DSL直接构造JSON数据

render(contentType:‘text/json’, , encoding:'UTF-8'){
        studio(name:‘Pixar’,website:‘pixar.com’)
        films{
                film(title:‘Toy Story’,year:‘1995′)
                film(title:‘Monsters, Inc.’,year:‘2001′)
                 film(title:‘Finding Nemo’,year:‘2003′)
        }
}