[Grails学习笔记]Web层设计

grails采用了controller+action模式来处理请求,一个Controller可以包含多个action。Controller-action可以直接响应请求,或者委托给view来处理。

可以将action理解为一个处理请求的方法,而Controller是一组相关action的集合。如UserController可以包含login和logout两个action。

一。Controller

Controller的定义是grails-app/controllers/目录中文件名以Controller结尾的groovy文件。action就是Controller内一个代码块。

每次请求都会创建一个新的Controller,所以Controller是线程安全的。

生成controller可以通过如下命令开始生成:

grails create-controller book

这样就会生成grails-app/controllers/BookController.groovy,根据默认的URI mapping对应的访问uri为/book,当然访问此uri的时候,会默认访问book中名称为index的action。

下面就是一个action的示例,此示例可以通过/book/list进行访问。

class BookController {
    def list = {
         // do controller logic 
        // create model
    return model 
    } 
}

如果我们想将list替代index作为访问此Controller的默认action,只需要在Controller中加入如下定义:

static defaultAction = "list"


Controller中参数的容器范围(Scope)除了有context,session,request意外,还多了一个flash,用以此次和下次访问。尤其跳转到错误提示页等类似场景时额外有用。

当action无显式指定view的时候,grails默认会查找SERVER/PROJECT/CONTOLLER/ACTION.jsp,如果找不到则再尝试访问SERVER/PROJECT/CONTOLLER/ACTION.gsp.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值