基於Grails 2.3.4的多模板Scaffolding實現

從Grails 2.3開始,Scaffolding被作爲一個獨立的插件從Grails核心中獨立出來,方便大家進行擴展和改造,一直都很希望通過定製多種類型模板來提升開發效率,所以進行了一下嘗試,基本上已經可用了。

大致思路:

[list=1]
[*]運行install-templates安裝模板,並在/src/templates/scaffolding目錄下建立不同的模板目錄,如: TreeView並放入定製的Controller.groovy以及*.gsp模板

[*]對命令行進行改造,在Scaffolding生成前指定模板名稱:
	generate-controller package.domain
generate-views package.domain
==>
generate-controller package.domain TreeView
generate-views package.domain TreeView


[*]對腳本_GrailsGenerate.groovy進行改造,解析通過argsMap傳遞的腳本名稱
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 {
修改獲取模板的目錄:
String name = "src/templates/scaffolding/"+templateName+"/" + template;

[/list]

驗證方法:

generate-controller business.Domain TreeView
generate-views business.Domain TreeView


驗證生成的Controller以及Views均來自對於模板目錄
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章