1.3.5 利用脚手架特征
Scafolding,在中文中称为脚手架。在大多数项目中,我们对数据的操作通常都是类似的,比如添加、读取、写入、删除数据等。脚手架的功能则是将这些类似的操作抽象出来,以模板的形式提供功能,无须每次编写相同功能的代码,节省开发时间。在Grails框架中,脚手架可以根据模板文件为每个Domain类生成统一的增、删、改、查操作,同时生成统一的显示页面。应用目录下的build.gradle文件中引入了脚手架插件:compile''org.grails.plugins:scafolding''。引用后便可以使用脚手架特性。在/.gradle/caches/modules-2/files-2.1/org.grails.plugins/scafolding/目录下可以查看该插件的代码部分,插件包中集成了常用的模板,比如Con troller以及显示界面(show.gsp)。
脚手架使用分为两种形式,一种是动态的,一种是静态的。
动态脚手架使用很简单,只需要在创建的Controller中指定Domain类。我们通过grails create-controller Test来创建一个新的Controller,但是在创建Controller时会同步在grails app/views/下创建test目录,为了使用脚手架,我们需要将该目录手动删除,同时更改该Controller的内容,如代码1.13所示。
package intro class TestController { static scaffold = Person }
代码1.13 动态脚手架
启动项目后访问http://localhost:8080/即可看到intro.TestController链接,单击即访问了TestController的index()方法。在没有编写对应功能代码的前提下,仅靠脚手架便实现了基本功能。我们还可以在这个界面尝试创建Person记录。脚手架插件默认对in dex()、list()、show()、edit()、delete()、create()、save()、update()等基本数据处理方法进行了包装。
静态脚手架,即将模板代码在生成Controller时同步添加过来。通过grails generate controller Person创建的Controller默认使用静态脚手架。执行完命令后打开PersonCon troller.groovy文件可以看到自动写入的代码片段。我们再通过grails generate-views Person来生成页面,可以在grails-app/views/person目录下查看相应的页面代码。
生成页面后,我们重启项目,访问http://localhost:8080/即可看到相应效果。
我们可以看到,单击intro.TestController和intro.PersonController进入的界面都是一样的。动态和静态只是两种实现方法,使用的是同一套模板(在不添加模板文件的情况下),区别在于后继的定制化是否便捷。
至此我们就可以在开发过程中运行项目进行访问测试了。