follow my heart...
分类: Java
2009-04-13 15:38:39
其实真正开始web开发是从django开始的。以前玩过asp,php,jsp,但是却都放下了。一者是工作的缘故。ruby on rails框架是一个非常不错的web敏捷开发框架,但是我在python下面找到django是一个非常类似的框架,而且用了一下也很喜欢。现在转到groovy了,发现grails框架同样是一套非常强大的MVC框架,所以,花一点时间却研究一下是值得的。从使用上来讲,觉得于django非常相似,看来,以后在这个平台上面还是要有所作为的。 chmod +x the grails script inside the bin directory.The following makes it simple to start a grails project. There's also a that follows these steps for creating a small app.
There is a on this Quick Start guide.
Once you have Grails you can use the built-in target for creating new projects:
grails create-app
%PROJECT_HOME%
+ grails-app
+ conf ---> location of configuration artifacts
+ hibernate ---> optional hibernate config
+ spring ---> optional spring config
+ controllers ---> location of controller artifacts
+ domain ---> location of domain classes
+ i18n ---> location of message bundles for i18n
+ services ---> location of services
+ taglib ---> location of tag libraries
+ util ---> location of special utility classes
+ views ---> location of views
+ layouts ---> location of layouts
+ lib
+ scripts ---> scripts
+ src
+ groovy ---> optional; location for Groovy source files
(of types other than those in grails-app/*)
+ java ---> optional; location for Java source files
+ test ---> generated test classes
+ web-app
+ WEB-INF
The "create-app" target created a Grails data source artifact for you in the "<..>/grails-app/conf" directory called DataSource.groovy with closures for each of the standard environments: Development, TestData, and Production. All the examples that follow operate on the development environment. For more information on environments see .
By default, each data source is configured with an in-memory HSQLDB database (great for testing, but probably not that useful for live deployment) so this step is optional:
dataSource {
pooled = false
driverClassName = "org.hsqldb.jdbcDriver"
username = "sa"
password = ""
}
// environment specific settings
environments {
development {
dataSource {
dbCreate = "create-drop" // one of 'create', 'create-drop','update'
url = "jdbc:hsqldb:mem:devDB"
}
}
test {
dataSource {
dbCreate = "update"
url = "jdbc:hsqldb:mem:testDb"
}
}
production {
dataSource {
dbCreate = "update"
url = "jdbc:hsqldb:file:prodDb;shutdown=true"
}
}
}Make sure you are in the root directory of your project (for argument sake "my-project") by typing
cd my-projectgrails create-domain-class
class Book {
String title
String author
}class BootStrap { 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 = {
}
}
are central to Grails applications they handle web requests and URLs of the request map to a controller class and a closure within the class.
Run the "grails create-controller" target and type in the name of the controller. In our example we type "Book" which generates a controller called {{grails-app/controllers/BookController.groovy}}. Open up this controller and change it as follows to use dynamic which dynamically generates your application at runtime:
class BookController {
def scaffold = Book
}NOTE: You will need to remove or comment out the "def index = { } " from the generated file for the scaffolding to work.
Alternatively, you could also have run "grails generate-all", which creates all the scaffolding for you, and left the generated controller alone, instead of replacing it with the default scaffolding. It might be worth learning from.
To start your Grails app run the following target
grails run-app