2007-03-30

点评Grails vs RoR

关键字: Grails
Grails的革新和RoR相比,非常不彻底,很多地方兼容Java习惯的痕迹很明显,所以使用起来,远远没有RoR快速和方便;Grails和传统Java编程相比,毕竟是动态脚本语言,因此又不具备传统的编译器检查的好处。总之,就是Grails这种中庸的态度导致Grails从快速开发角度既不如RoR,从类型安全的角度又丧失了Java静态类型的好处。

另外,虽然Grails作者因为rhtml可以嵌入ruby代码,所以对rhtml不爽,但是我更不爽JSP Tag。可以这样说,JSP Tag是Java有史以来web编程发展历史上的最大败笔。jsp tag导致了难以进行页面局部重用,难以动态切换页面实现,这对于类似博客网站的应用来说,相当致命。对于页面局部重用,即使是freemarker都提供了很简单的宏扩展功能,而jsp tag则不得不被迫用Java编程自定义tag,至于博客切换模板,那根本就是没门,但是对于freemarker来说,实现很简单。

Grails只能使用JSP Tag作为view层实现,简直就是历史的倒退,基本上凡是强制使用JSP Tag的Java Web框架,我无一例外的反感(webwork是一个例外,webwork可以自由切换view层实现)。

RoR的rhtml模板在局部页面重用,页面装饰,动态切换页面这些方面做的极好,超越了目前我所了解的所有Java Web框架,至于页面嵌入ruby代码,这是一个有没有心理障碍的问题。
评论
jy00057800 2008-01-22
grails的tag很爽呀
class MyCheckboxTagLib {
def checkGroup = { attrs ->
attrs['allList']?.each{t->
def value =t."${attrs['valueField']}"
def name = t."${attrs['nameField']}"
////
def check = ''
attrs['selectList']?.each{st->
if(value==st.id)
{
check = "checked='true'"
}
}
out << "<input type='checkbox' ${check} name='${attrs["name"]}' value='${value}' />${name}<br>"
}
}
}
这就是一个checkbob的标签,作用就是默认那些选择那些不选择.
不用配置,也不用声明.
只要写在grails-app\taglib下就可以,类名和方法名字也是随便起.
页面调用就是
<g:checkGroup allList="${menus}" selectList="${menus_role}" nameField="menuName" valueField="id" name="menus" />
menus,menus_role从控制器传进去
liangshixing 2008-01-01
显然Grails页面GSP里可以像rhtml那样写代码滴
Tin 2007-04-20
Ruby的语法还是更加舒适和轻松呀。
mave99a 2007-04-16
JSP很不爽这说非常赞同 ! 可惜JSF还是严重使用了JSP,还加了更多让人不爽的tag
dongbin 2007-04-02
把ruby往Java上挪本来就是一件费力不讨好的是情。 rhtml确实不匝地,Haml将是ROR view的主流。
andyao 2007-04-02
页面中嵌入Ruby代码,个人觉得没什么问题。其实JSP Tag也可以理解为在JSP页面中加入Java代码,只是多加了一层封装,《Core J2EE Patterns》将这种方式称为View Helper。但是实际应用中确实像robbin说的那样,很难进行页面局部重用。
发表评论

您还没有登录,请登录后发表评论

robbin
搜索本博客
我的相册
213cbb75-7dae-37b2-b9ce-9e7b49f784d3-thumb
游乌镇
共 33 张
其他分类
存档
最新评论