BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Grails 0.6汇集Spring与JBoss的精华

| 作者 Shane Witbeck 关注 0 他的粉丝 ,译者 郭晓刚 关注 0 他的粉丝 发布于 2007年9月17日. 估计阅读时间: 4 分钟 | GMTC大前端的下一站,PWA、Web框架、Node等最新最热的大前端话题邀你一起共同探讨。

Graeme Rocher 宣布Grails的最新版本将会进一步摆脱原先的Rails模仿者的角色。虽然这次发布仅仅让Grails的版本号进步到了0.6,但从开发者所做的大量工作来看,这个版本号显然是太谦虚了。以下是完整的特性列表:

  • 合并Groovy/Java编译
  • 集成Spring Web Flow
  • 支持Spring的作用域(scope)以实现限定作用域的服务
  • 改善了对REST的支持,实现了自动化的XML/JSON marshalling和RESTful URL映射
  • 为不能被惯例所代替的配置准备了新的Config DSL
  • 更漂亮的自动生成界面
  • 支持内嵌使用Sitemesh decorator
  • 控制器现在可以把标签库当作方法来使用
  • 新的GSP标签
  • 大幅度改进启动、单元测试和生成工具的速度

集成Spring Web Flow

Rod Johnson提出了通过代码来定义Spring管理下的bean的新途径,取代传统的XML标记的形式。与此类似,Graeme用Groovy来定义Spring Web Flow:

 

showCart {

on("checkout").to "enterPersonalDetails"
on("continueShopping").to "showCatalogue"
}
enterPersonalDetails {
on("submit") {
def p = new Person(params)
flow.person = p
def e = yes()
if(p.hasErrors() || !p.validate())return error()
}.to "enterShipping"
on("return").to "showCart"
on(Exception).to "handleError"
}
enterShipping {
on("back").to "enterPersonalDetails"
on("submit") {
def a = new Address(params)
flow.address = a
if(a.hasErrors() || !a.validate()) return error()
}.to "enterPayment"
}

上面的代码片断展示了如何定义一个工作单元或JBoss Seam框架所说的“会话”。就跟Seam中一样,“流”里包含了会话性的状态信息。

自动化的XML/JSON marshalling和RESTful URL映射

以前的版本用插件来实现转换,而在这一版里:

 

 import grails.converters.*

...

def list = {
render Book.list() as XML
// or render Book.list() as JSON
}
查看英文原文:Grails 0.6 Adds Best of Breed Mix From Spring and JBoss

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

第二段的标题不对! by Q Shawn

"Automatic XML/JSON marshalling and RESTful URL mapping"
怎么翻译成了
"用JBoss Seam实现更强大的数据转换"
渲染类型转换和Seam没有关系!

Re: 第二段的标题不对! by Guo Xiaogang

是原文后来更新了。马上改。

Re: 第二段的标题不对! by Guo Xiaogang

原来是Rich Conversion via JBoss Seam,我没有深究就照译了。跟各位道歉了。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

3 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT