codecamp

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 不在请求之间共享实例,对于每个请求的处理,控制器都是独立的。

Revel Websockets
Revel 消息处理
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }