`
simon511
  • 浏览: 13315 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论
  • me-: 有java的安全,有c的帅气干净利落,好东西groovy
    groovy

grails 初体验

阅读更多

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′)
        }
}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics