基于Grails 2.3.4的多模板Scaffolding实现

http://bruce-lin-chn-sina-cn.iteye.com/blog/2006913

 

从Grails 2.3开始,Scaffolding被作为一个独立的插件从Grails核心中独立出来,方便大家进行扩展和改造,一直都很希望通过定制多种类型模板来提升开发效率,所以进行了一下尝试,基本上已经可用了。 

大致思路: 

[list=1]
  • 运行install-templates安装模板,并在/src/templates/scaffolding目录下建立不同的模板目录,如: TreeView并放入定制的Controller.groovy以及*.gsp模板
  • 对命令行进行改造,在Scaffolding生成前指定模板名称:
Java代码   收藏代码
  1.     generate-controller package.domain  
  2.     generate-views package.domain  
  3. ==>  
  4.     generate-controller package.domain TreeView  
  5.     generate-views package.domain TreeView  

  • 对脚本_GrailsGenerate.groovy进行改造,解析通过argsMap传递的脚本名称
Java代码   收藏代码
  1. String template =argsMap['params'].size() >1 ? argsMap['params'][1] : "default"  

并通过generateForDomainClass方法将template赋值给: 
DefaultGrailsTemplateGenerator
  • 对AbstractGrailsTemplateGenerator类(Java)进行改造,增加:
增加成员变量: public String templateName = "default"; 
修改方法,接受模板参数: 
AbstractResource getTemplateResource(String template) throws IOException { 
修改获取模板的目录: 
Java代码   收藏代码
  1. String name = "src/templates/scaffolding/"+templateName+"/" + template;  

[/list] 

验证方法: 

Java代码   收藏代码
  1. generate-controller business.Domain TreeView  
  2.     generate-views business.Domain TreeView  


验证生成的Controller以及Views均来自对于模板目录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值