- 浏览: 491640 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
hypercube:
markin'
配置D语言编程环境 -
qiezi:
qiezi 写道yangyang_08 写道1 ...
我的编程语言学习经历 -
qiezi:
yangyang_08 写道1、现在如果做并发服务器,楼主选用 ...
我的编程语言学习经历 -
yangyang_08:
1、现在如果做并发服务器,楼主选用什么样的语言架构?2、lua ...
我的编程语言学习经历 -
dearplain:
我也是语言爱好者,不过我一直坚持使用c。
我的编程语言学习经历
简单测试了一下,语法比ruby稍罗嗦一点,不过也算是很简洁了。
在WINDOWS下执行,遇到个小BUG,grails.bat第4行:if "%GRAILS_HOME"=="" goto grailsHomeNotSet是错误的,改成if "%GRAILS_HOME%"=="" goto grailsHomeNotSet就可以了。后面也有点小问题,干脆在LINUX下测试。
照着Quick Start做了一下,还算顺利,不过例子怎么只给了个list呢?怎么也得把create/update/delete给完成嘛。
猜着写了个create:
怎么存进去的不是我那个字符串,而是[Ljava.lang.String;@18b5a73呢。。
又看了下文档,在controller里面是这么用的:
其它都很相似:
语法上比RoR稍麻烦点。
接着测试一下查询:
list.gsp里面添加:
groovy写代码挺烦的,局部变量也要def来定义?不定义就提示该变量不是对象的字段,跟很多脚本语言都不一样。如果从java上转过来,会觉得还是挺简洁的。
借助spring、hibernate,Grails所做的就是整合,groovy这个语言好像并没有特别出众的地方,大部分东西在其它脚本语言里面都能看到。我觉得ruby更容易扩充,更自由。Grails要想成功,除非在效率上大幅度领先,就测试来看,并没有觉得很快,它也没提供个评测工具。据说ruby2.0也要重写虚拟机,如果ruby只是稍慢一些,自然还是选RoR比较好。
在WINDOWS下执行,遇到个小BUG,grails.bat第4行:if "%GRAILS_HOME"=="" goto grailsHomeNotSet是错误的,改成if "%GRAILS_HOME%"=="" goto grailsHomeNotSet就可以了。后面也有点小问题,干脆在LINUX下测试。
照着Quick Start做了一下,还算顺利,不过例子怎么只给了个list呢?怎么也得把create/update/delete给完成嘛。
猜着写了个create:
<!----> @Property create = {
[ post : new Post() ]
}
@Property save = {
new Post(params).save()
redirect(action:list)
}
[ post : new Post() ]
}
@Property save = {
new Post(params).save()
redirect(action:list)
}
怎么存进去的不是我那个字符串,而是[Ljava.lang.String;@18b5a73呢。。
又看了下文档,在controller里面是这么用的:
<!----> @Property save = {
def post = new Post()
post.properties = params
post.save()
redirect(action:list)
}
def post = new Post()
post.properties = params
post.save()
redirect(action:list)
}
其它都很相似:
<!---->class PostController {
@Property index = { redirect(action:list) }
@Property list = {
[ postList : Post.list() ]
}
@Property create = {
[ post : new Post() ]
}
@Property save = {
def post = new Post()
post.properties = params
post.save()
redirect(action:list)
}
@Property show = {
[ post : Post.get(params['id']) ]
}
@Property delete = {
Post.get(params['id']).delete()
redirect(action:list)
}
@Property edit = {
[ post : Post.get(params['id']) ]
}
@Property update = {
def post = Post.get(params['id'])
post.properties = params
post.save()
redirect(action:list)
}
}
@Property index = { redirect(action:list) }
@Property list = {
[ postList : Post.list() ]
}
@Property create = {
[ post : new Post() ]
}
@Property save = {
def post = new Post()
post.properties = params
post.save()
redirect(action:list)
}
@Property show = {
[ post : Post.get(params['id']) ]
}
@Property delete = {
Post.get(params['id']).delete()
redirect(action:list)
}
@Property edit = {
[ post : Post.get(params['id']) ]
}
@Property update = {
def post = Post.get(params['id'])
post.properties = params
post.save()
redirect(action:list)
}
}
语法上比RoR稍麻烦点。
接着测试一下查询:
<!----> @Property list = {
def title = params['title']
def body = params['body']
def postList
def c = Post.createCriteria()
//if (title != null && title != "" && body != null && body != "")
if (title && body)
postList = c{
like("title", "%" + title + "%")
like("body", "%" + body + "%")
}
else if (title)
postList = c{
like("title", "%" + + title + "%")
}
else if (body)
postList = c{
like("body", "%" + body + "%")
}
else
postList = Post.list()
[ postList : postList, post : new Post() ]
}
def title = params['title']
def body = params['body']
def postList
def c = Post.createCriteria()
//if (title != null && title != "" && body != null && body != "")
if (title && body)
postList = c{
like("title", "%" + title + "%")
like("body", "%" + body + "%")
}
else if (title)
postList = c{
like("title", "%" + + title + "%")
}
else if (body)
postList = c{
like("body", "%" + body + "%")
}
else
postList = Post.list()
[ postList : postList, post : new Post() ]
}
list.gsp里面添加:
<!----> <g:form action="list" method="post">
<div class="dialog">
<table>
<tr class='prop'>
<td valign='top' style='text-align:left;' width='20%'>
<label for='title'>Title:</label>
</td>
<td valign='top' style='text-align:left;' width='80%'
class='${hasErrors(bean:post,field:'title','errors')}'>
<input type='text' name='title' value='${post?.title}' />
</td>
</tr>
<tr class='prop'>
<td valign='top' style='text-align:left;' width='20%'>
<label for='body'>Body:</label>
</td>
<td valign='top' style='text-align:left;' width='80%'
class='${hasErrors(bean:post,field:'body','errors')}'>
<input type='text' name='body' value='${post?.body}' />
</td>
</tr>
</table>
</div>
<div class="buttons">
<span class="formButton">
<input type="submit" value="Search"></input>
</span>
</div>
</g:form>
<div class="dialog">
<table>
<tr class='prop'>
<td valign='top' style='text-align:left;' width='20%'>
<label for='title'>Title:</label>
</td>
<td valign='top' style='text-align:left;' width='80%'
class='${hasErrors(bean:post,field:'title','errors')}'>
<input type='text' name='title' value='${post?.title}' />
</td>
</tr>
<tr class='prop'>
<td valign='top' style='text-align:left;' width='20%'>
<label for='body'>Body:</label>
</td>
<td valign='top' style='text-align:left;' width='80%'
class='${hasErrors(bean:post,field:'body','errors')}'>
<input type='text' name='body' value='${post?.body}' />
</td>
</tr>
</table>
</div>
<div class="buttons">
<span class="formButton">
<input type="submit" value="Search"></input>
</span>
</div>
</g:form>
groovy写代码挺烦的,局部变量也要def来定义?不定义就提示该变量不是对象的字段,跟很多脚本语言都不一样。如果从java上转过来,会觉得还是挺简洁的。
借助spring、hibernate,Grails所做的就是整合,groovy这个语言好像并没有特别出众的地方,大部分东西在其它脚本语言里面都能看到。我觉得ruby更容易扩充,更自由。Grails要想成功,除非在效率上大幅度领先,就测试来看,并没有觉得很快,它也没提供个评测工具。据说ruby2.0也要重写虚拟机,如果ruby只是稍慢一些,自然还是选RoR比较好。
发表评论
-
我们必须思考一切吗?有关同步、异步
2009-12-13 17:01 0最近在项目中使用了一个协程库,不过也过去半年了,在Erloun ... -
XL Programming Language
2009-07-24 08:21 2063在wikipedia上瞎逛,看一些Coroutine相关资料, ... -
平台架构
2008-08-27 08:56 2279上次构思了并行/分布式平台的架构,后来觉得还是有些小问题,没有 ... -
并行/分布式集群的一点想法
2008-08-13 21:35 1949最近在构思一个并行/分布式集群的平台架构,用来解决目前很多服务 ... -
夜不能寐
2008-08-08 08:34 1634前几天睡不着时写的, ... -
标准库的效率--适时选择自己实现
2008-04-27 22:31 2570最近在测试简单的轻量级线程调度器。从fiber转换到gener ... -
使用C#的Generator编写并发程序
2008-04-18 23:17 4477前面说地Generator编写并发程序的优势,当然它本身没有这 ... -
云计算的架构
2008-04-12 11:41 4034一直没搞清云计算和网格计算的差别,为什么就提出个新词了呢? ... -
并发编程模型:Thread, Coroutine, Callback ...
2008-04-07 00:41 10293先总结一下。 线程是最容易编写的并发方式,操作系统也提供了最 ... -
结合Coroutine和Callback
2008-03-31 12:00 4341Coroutine切换成本相对还 ... -
Coroutine依然很重
2008-03-29 22:25 16Coroutine比Thread轻许多,但C的实现依然是开销很 ... -
C和Erlang轻量级线程性能
2008-03-13 23:42 4504简单比较了一下ucontext和Erlang的进程切换效率,在 ... -
C++组件对象模型方案思考
2007-07-20 14:47 82最近公司项目比较多,都是小而零散的,由于项目组人手少,成立时间 ... -
网络服务器架构模式
2007-04-20 20:01 4004前段时间做了个简单的d ... -
Mac OS X 10.5(Leopard)
2007-01-24 14:46 3234跑去听了苹果Leopard技术 ... -
突发奇想
2006-12-11 21:31 2470看到D语言的opAssign即赋值操作符,突然想是不是能实现下 ... -
动静结合的语言?
2006-12-06 09:47 2338静态类型和动态类型各有长短,为何不让这2者兼得呢? 比如一段 ... -
Google Picasa Linux版
2006-12-01 11:21 2484看样子是运行在wine上,不过竟然和windows上一样流畅。 ... -
网页界面的一点心得
2006-11-14 11:07 2027这几天在折腾网页界面,其中有些要求位置、大小控制得比较精细,而 ... -
IE/FireFox/Opera/Safari中border/outline/background的差异
2006-11-13 14:09 6279做了一个图片编辑窗口,用来做裁剪、旋转、镜像操作。 原来是 ...
相关推荐
使用 Groovy on Rails (Grails) 构建的 Web 应用程序。 它使用Bootstrap为网页赋予样式,从而管理学生和课程的数据库,并以HTML呈现内容。 用户可以看到数据库中所有课程/用户的列表; 还有课程和用户的详细视图。...
NULL 博文链接:https://key232323.iteye.com/blog/1336400
赠送jar包:groovy-3.0.9.jar; 赠送原API文档:groovy-3.0.9-javadoc.jar; 赠送源代码:groovy-3.0.9-sources.jar; 赠送Maven依赖信息文件:groovy-3.0.9.pom; 包含翻译后的API文档:groovy-3.0.9-javadoc-API...
apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望大家多多下载,apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望大家多多下载,apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望...
Groovy in Action, Second Edition is the undisputed definitive reference on the Groovy language. Written by core members of the Groovy language team, this book presents Groovy like no other can—from ...
Making Java Groovy is a practical handbook for developers who want to blend Groovy into their day to day work with Java It starts by introducing the key differences between Java and Groovy and how you...
groovy入门经典,groovyeclipse 插件
Java调用Groovy,实时动态加载数据库groovy脚本,java读取mongoDB的groovy脚本,加载实时运行,热部署
Griffon leverages years of experience and lessons learned by Grails, Groovy, Rails, Ruby, Java Desktop, and Java developers and their communities. Griffon has adopted many of those languages’ and ...
Groovy轻松入门—搭建Groovy开发环境 Groovy轻松入门—搭建Groovy开发环境
groovy-2.3.6-installer windows安装版本
什么是 Groovy? Groovy 是 JVM 的一个替代语言 — 替代 是指可以用 Groovy 在 Java 平台上进行 Java 编程,使用方式基本与使用 Java 代码的方式相同。在编写新应用程序时,Groovy 代码能够与 Java 代码很好地结合,...
Groovy
groovy
Groovy 调用 Java 类groovy 调用 Java class 十分方便,只需要在类前导入该 Java 类,在 Groovy 代码中就可以无缝使用该
groovy eclipse plugin2groovy eclipse plugin2groovy eclipse plugin2groovy eclipse plugin2groovy eclipse plugin2groovy eclipse plugin2groovy eclipse plugin2
Groovy jar包 3.0.
Eclipse Groovy插件 Eclipse Groovy插件 Eclipse Groovy插件 Eclipse Groovy插件
赠送jar包:groovy-3.0.9.jar; 赠送原API文档:groovy-3.0.9-javadoc.jar; 赠送源代码:groovy-3.0.9-sources.jar; 赠送Maven依赖信息文件:groovy-3.0.9.pom; 包含翻译后的API文档:groovy-3.0.9-javadoc-API...