本文主要是介绍Grails教程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1 内容简介
该部分主要介绍了Grails的内部组织结构,工作流程,以及各个组件的语法特点.
2 Grails内部组织结构
3 Grails工作流程
参考 4.1的controller原型
1. 输入 http://127.0.0.1:8080/HelloWorld
2. HelloWorldController 接受到这个请求后根据
def index = { redirect(action:list,params:params) }将请求转到了list action
def index = { redirect(action:list,params:params) }将请求转到了list action
3. list action最后没有render元素,默认将请求定向到list.gsp这个view,同时携带参数helloList, helloList是一个HashMap类型.
4. list.gsp接受helloList参数,并取出值
4 Grails组件
4.1 Controller
一个完整的controller如下:
class HelloController {
def index = { redirect(action:list,params:params) }
def list = {
if(!params.max) params.max = 10
[ helloList: Hello.list( params ) ]
}
def show = {
[ hello : Hello.get( params.id ) ]
}
def delete = {
def hello = Hello.get( params.id )
if(hello) {
hello.delete()
flash.message = "Hello ${params.id} deleted."
redirect(action:list)
}
else {
flash.message = "Hello not found with id ${params.id}"
redirect(action:list)
}
}
def edit = {
def hello = Hello.get( params.id )
if(!hello) {
flash.message = "Hello not found with id ${params.id}"
redirect(action:list)
}
else {
return [ hello : hello ]
}
}
def update = {
def hello = Hello.get( params.id )
if(hello) {
hello.properties = params
if(hello.save()) {
redirect(action:show,id:hello.id)
}
else {
render(view:'edit',model:[hello:hello])
}
}
else {
flash.message = "Hello not found with id ${params.id}"
redirect(action:edit,id:params.id)
}
}
def create = {
def hello = new Hello()
hello.properties = params
return ['hello':hello]
}
def save = {
def hello = new Hello()
hello.properties = params
if(hello.save()) {
redirect(action:show,id:hello.id)
}
else {
render(view:'create',model:[hello:hello])
}
}
private String getChina (){
return “[Chinese]”
}
}
4.1.1 Action
这个controller的action有create,update,list,show,delete,save,每一个action类似与一个c的函数,为了实现一个功能.
Controller在被调用时会根据” def index = { redirect(action:list,params:params) }”自动重定向到一个action.例如在IE里输入URL: http://127.0.0.1:8080/hello等同与 http://127.0.0.1:8080/hello/list
4.1.2 页面转换元素
Redirect:重定向到一个action
Render:重定向到一个view
在action中间调用redirect或者render,程序还会继续往下执行,除非你在前加上return
4.1.3 Action里的方法
可以象java里一样调用getChina方法
4.2 服务
参见<<Grails环境部署与开发>>
4.3 域类
参见<<Grails环境部署与开发>>
这篇关于Grails教程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!