×

概要

Revel 介绍Revel 概念Revel 项目结构

Revel 控制器

Revel 控制器概要Revel 路由routesRevel 参数绑定Revel 参数验证Revel Session / FlashRevel 国际化Revel Results

Revel 模板

Revel 拦截器Revel 缓存CacheRevel 过滤器Revel Websockets

Revel 模块

Revel 模块概要Revel 测试Revel 计划任务

Revel 操作

Revel 日志类型Revel 版本控制Revel 部署

Revel 参考资料

Revel 配置文件app.confRevel 命令行工具Revel 常见问题

Revel 控制器概要


自定义Controller 是一个直接或间接嵌入了 *revel.Controller 的struct。

典型用法:

type AppController struct {
  *revel.Controller
}

*revel.Controller 在你自定义的struct中必须是第一个嵌入的类型

revel.Controller 用于请求的上下文,包含了请求与响应数据,请到 the godoc 查看完整内容, 下面是一个定义 (以及辅助类型的定义):

type Controller struct {
    Name          string          // 控制器名称, 比如: "Application"
    Type          *ControllerType // 控制器类型描述
    MethodType    *MethodType     // 控制器方法描述
    AppController interface{}     // 控制器实例

    Request  *Request
    Response *Response
    Result   Result

    Flash      Flash                  // 用户 cookie, 在请求之后清空
    Session    Session                // Session, 保存在cookie中,签名。
    Params     *Params                // URL和表单中的参数(包扩 multipart).
    Args       map[string]interface{} // 每个请求的暂存空间
    RenderArgs map[string]interface{} // 传递给模板的参数
    Validation *Validation            // 数据验证帮助器
}

// 统一的请求参数包装
// 包括:
// - URL 查询字符串
// - Form 表单字段
// - File 文件上传
type Params struct {
    url.Values
    Files map[string][]*multipart.FileHeader
}

type Request struct {
    *http.Request
    ContentType string
}

type Response struct {
    Status      int
    ContentType string
    Headers     http.Header
    Cookies     []*http.Cookie

    Out http.ResponseWriter
}

作为HTTP请求处理的一部分,Revel实例化一个控制器,设置所有revel.Controller嵌入的属性, 因此, Revel 不在请求之间共享实例,对于每个请求的处理,控制器都是独立的。


分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)