- 浏览: 64684 次
- 性别:
- 来自: 福州
最新评论
-
xpjava:
大侠您好! 我在使用easyui 的时候发现 他与grails ...
100%拿来主义——基于EasyUI和Grails的应用"框架"?! -
热带翎羽:
alanland 写道已经两年没更新了?有更新啦,公司行为,不 ...
基于Grails 1.3.7和extjs 3.4.0的模板框架(附源代码) -
热带翎羽:
alanland 写道这个不应该用国际化来做吗国际化可以实现, ...
Grails的Controller中如何获取Domain模型 -
alanland:
这个不应该用国际化来做吗
Grails的Controller中如何获取Domain模型 -
alanland:
已经两年没更新了?
基于Grails 1.3.7和extjs 3.4.0的模板框架(附源代码)
文章列表
从Grails 2.3开始,Scaffolding被作为一个独立的插件从Grails核心中独立出来,方便大家进行扩展和改造,一直都很希望通过定制多种类型模板来提升开发效率,所以进行了一下尝试,基本上已经可用了。
大致思路:
[list=1]
运行install-templates安装模板,并在/src/templates/scaffolding目录下建立不同的模板目录,如: TreeView并放入定制的Controller.groovy以及*.gsp模板
对命令行进行改造,在Scaffolding生成前指定模板名称:
generate-controller package.domain ...
Programming Grails
Programming Grails: Best Practices for Experienced Grails Developers
BOOK DESCRIPTION
Dig deeper into Grails architecture and discover how this application framework works its magic. Written by a core developer on the Grails team, this practical guide takes you behind the curtai ...
测试目标:
1) 对数据挖掘的步骤进行实践:生成、分析、验证
2) 熟悉对WEKA的使用
测试步骤:
1) 通达信导出股票复权数据
2) 通过程序生成: *.arff,包括:训练集和测试集合
3) 对结果进行评估
生成ARFF的代码如下:
File arffTrainingFile=new File("D:/ARFF/${name}Training.arff")
arffTrainingFile.delete()
arffTrainingFile.createNewFile()
arffTrainingF ...
运行效果:
Groovy代码:
import weka.classifiers.Classifier
import weka.classifiers.trees.J48
import weka.core.Instances
import weka.core.converters.ArffLoader
import weka.gui.treevisualizer.PlaceNode2
import weka.gui.treevisualizer.TreeVisualizer
import javax.swing.JFrame
import java.awt.BorderL ...
Groovy 生产项目的一些应用心得
- 博客分类:
- Groovy
最近在一个项目上部分应用了Groovy进行高并发程序的开发,有一些经验和教训分享如下:
1. 尽量使用静态编译和类型检查标志(Groovy版本>2.0),对性能有很大的提升
@CompileStatic
@TypeChecked
2. 尽量不使用动态代码
3. catch(Exception e){ println e?.message}代码里的?尽可能增加,可能会节约很多的调试时间
4. 优先写测试代码(Unit Test, Integration Test),在写实现代码,分段测试,Groovy的错误提示,基本上对解决异常或发现问题现场没有帮助
5. 另外一些代码语法错误,可 ...
借助动态Closure实现规则引擎
- 博客分类:
- Groovy
业务场景:
用户是否具备某个实体的访问或修改权限,希望根据前台配置的规则进行动态解析
前台传入字符串规则以及后台解析的原型:
Closure judgement
String judgementContent="{ Map user, Map organization -> user.name == 'bruce'}"
judgement=new GroovyShell().evaluate(judgementContent)
println judgement
println judgement.parameterTypes
printl ...
一个容易犯的Groovy小错误
- 博客分类:
- Groovy
if([5..10].contains(7))
{
println "Yes, the collection contains 7"
}
能猜的出来以上代码运行的结果不?
Caught: groovy.lang.MissingPropertyException: No such property: println
正确的写法应该是:
if((5..10).contains(7))
{
println "Yes, the collection contains 7"
}
...
解决该问题的环境:Grails 2.1
在Grails插件中更新主项目的配置,主要面临几个小问题:
在什么地方改?
如何引用插件的资源?
如何引用主项目的资源?
如何修改主项目的配置?
1) 在什么地方改?
建议的地方包括,插件的_Install.groovy或者自定义的脚本,如:UpdateConfig.groovy
2) 如何引用插件的资源?
对于这一点,有两种方案,如果在_Install.groovy中引用,可以通过诸如:
"${pluginBasedir}/src/templates/_frontpage.gsp"
注意这里的"pluginBase ...
最简单的使用淘宝gems镜像的方法:将rubygems.org的IP解析到ruby.taobao.org,感谢taobao!
http://www.infoq.com/presentations/Groovy-DSLs
Summary
Paul King and Guillaume Laforge present Groovy’s capabilities to build DSLs through several concrete examples meant to highlight the language’s good support for creating internal DSLs.
Bio
Paul King leads ASERT in Brisbane, Australia. He has ...
有空来看看我的grails 1.3.7 + extjs 3.4.0 集成模板已实现LCRUD以及M:1,M:N的映射,提提建议
https://github.com/iqGrails/foundation
基于DOMAIN生成的Scaffolding页面如图:
类型支持(含部分校验)包括:
String(可选择:textfield, textarea和htmleditor进行装饰)
Date
int
float
boolean
inList
多个domain之间有复杂关联关系
- 博客分类:
- Grails
基本的定义方法看帮助文档就行了,但是有个地方把我弄糊涂了:
one-to-many需要:
static belongsTo=[publisher:Publisher]
many-to-many需要:
static belongsTo=Author
如果一个类要两个约束都写上,怎么写?其实两种方式是一样的,只是第一种相当与有个别名。那么就写成
static belongsTo=[publisher:Publisher, author:Author]
或者
static belongsTo=[Publisher, Author]
把Grails的文档打包了下,包括: API, User Guide和Reference,方便自己方便他人
1. 概述
Resources插件作为Grails 2.0的资源管理框架,主要解决:
Web应用的性能调优
资源间的依赖性导致加载顺序正确性问题
Javascript的延时加载
标准化的Grails插件资源暴露方式
可扩展的资源优化处理过程
资源的重复加载
开发模式和生产模式的一致性
2. 概念
资源(Resources):这里主要指用于渲染应用视图的静态资源,包括:CSS、Javascript和图片等,如:
modules = {
core {
dependsOn 'jquery, utils'
defaultBu ...
即使没有被安装,Grails也可以引用文件系统中的任何插件。具体方法是:在grails-app/conf/BuildConfig.groovy文件中增加:
// Useful to test plugins you are developing.
grails.plugin.location.shiro =
"/home/dilbert/dev/plugins/grails-shiro"// Useful for modular applications where all plugins and
// applications are in th ...