自定义Controller 是一个直接或间接嵌入了 *revel.Controller
的struct。
典型用法:
type AppController struct {
*revel.Controller
}
*revel.Controller
在你自定义的struct中必须是第一个嵌入的类型
revel.Controller
用于请求的上下文,包含了请求与响应数据,请到 the godoc 查看完整内容, 下面是一个定义 (以及辅助类型的定义):
type Controller struct {
Name string
Type *ControllerType
MethodType *MethodType
AppController interface{}
Request *Request
Response *Response
Result Result
Flash Flash
Session Session
Params *Params
Args map[string]interface{}
RenderArgs map[string]interface{}
Validation *Validation
}
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 不在请求之间共享实例,对于每个请求的处理,控制器都是独立的。
请发表评论