下面将开始一个简单的GRAILS项目.同样也演示了如何创建一个小应用的步骤.
创建Grails项目
一旦你安装过Grails之后,你就可以使用内置的命令来创建新的项目了:
grails create-app
之后会提示您,让您输入项目名称.
也可以直接在命令后输入项目的名称.
grails create-app puras_app
命令执行完之后,会生成一个以你输入的项目名为名的目录,里面则是自动生成的目录结构和一些基础代码了,结构如下:
%PROJECT_HOME%
+ grails-app
+ conf ---> 本地配置文件,像是数据源
+ controllers ---> 这个文件夹里存有Controller类
+ domain ---> 这个文件夹里存有domain类
+ i18n ---> 国际化信息
+ services ---> location of services
+ taglib ---> 标签库
+ util ---> 工具库
+ views ---> 视图
+ layouts ---> 布局
+ hibernate ---> 可选择的Hibernate的配置
+ lib
+ spring ---> 可选择的Spring配置
+ src
+ groovy ---> 可选择的,groovy源代码
+ java ---> 可选择的,java源代码
+ war
+ WEB-INF
接下来,可以选择配置一个数据源,在执行"create-app"时,grails就创建了几个数据源在你的%PROJECT_HOME%/grails-app/conf目录里,它们都是标准的环境:DevelopmentDataSource(开发数据源),TestDataSource(测试数据源),和ProductionDataSource(产品数据源).所有的例子都是操作在开发环境之下.
在执行应用的时候可以选择所属的环境(以后有介绍).
默认的,每个数据源都配置的是内嵌的HSQLDB数据库(可以很方便的测试,但是现实的环境中大概没什么用处),所以此步骤是可选的:
DevelopmentDataSource.groovy
class DevelopmentDataSource {
boolean pooling = true
String dbCreate = "create-drop" // one of 'create', 'create-drop','update'
String url = "jdbc:hsqldb:mem:testDB"
String driverClassName = "org.hsqldb.jdbcDriver"
String username = "sa"
String password = ""
}
配置这个数据库,就是简单的替换上所希望使用数据库的值,再将其所用的驱动包拷贝到%PROJECT_HOME%/lib目录下.
创建一个实体类
确认你现在所在的目录是你的项目的主目录,之后输入以下命令
grails create-domain-class
之后命令会提示你输入要创建的类名,你也可以直接在命令后直接输入类名,如:
grails create-domain-class Book
向类里添加两个属性:
Book.groovy
class Book {
String title
String author
}
你可能想要创建一些测试数据.一个简单的方法就是在%PROJECT_HOME%/grails-app/conf/ApplicationBootStrap.groovy这个Grails应用的启动类的"init"闭包里创建并保存测试数据.
class ApplicationBootStrap {
def init = { servletContext ->
// Create some test data
new Book(author:"Stephen King",title:"The Shining").save()
new Book(author:"James Patterson",title:"Along Came a Spider").save()
}
def destroy = {
}
}
创建Controller
Controllers是Grails应用的中心,它们处理WEB请求和请求的URLs,将请求和请求参数映射到控制器类和它里面的一个闭包.
执行"grails generate-all"命令,并输入控制器的名称.在我们的例子中,我们在生成控制器类的时候输入"Book",将会在%PROJECT_HOME%/grails-app/controllers下生成一个名叫BookController.groovy的文件.也可以直接在命令后直接加上控制器类的名称.
grails generate-all Book
打开这个文件,并把里面的内容替换成下面所示的代码,使用在你的程序运行的时候动态生成的动态脚手架.
class BookController {
def scaffold = Book
}
要注意你输入的"Book"是大写的B开头.
当然,你同样可以不替换而使用默认生成的代码.它可是有学习的价值哦.
要开始你的Grails应用,执行下面的命令
grails run-app
这个命令将启动一个Jetty应用服务器的一个实例运行在8080端口上.为了启动一个运行在不同端口上,比如说9090,使用grails -Dserver.port=9090 run-app.要访问books的例表,打开浏览器,并输入:
http://localhost:8080/puras_app/book/list
简单的小应用到此结束.参照它,举一返三,做一些简单的小应用还是可以的!