作为 HTTP 请求处理的一部分,Revel 实例化你的控制器,并设置嵌入revel.Controller
的所有的属性。 Revel 不在请求之间共享实例。
Controller 是直接 或 间接嵌入 *revel.Controller
的一个struct。
type AppController struct {
*revel.Controller
}
Action 是 Controller 的方法。符合下面的条件:
- 名称是导出的(首字母大写)
- 返回 revel.Result 类型
例如:
func (c AppController) ShowLogin(username string) revel.Result {
..
return c.Render(username)
}
程序调用 revel.Controller.Render
渲染一个模板, 传递给模板一个username参数。revel.Controller 有许多方法处理revel.Result, 程序也可以自己创建处理方法。
Results
Result 符合下面的接口:
type Result interface {
Apply(req *Request, resp *Response)
}
通常, 什么也不响应,直到 action 和所有的过滤器返回。此时,Revel写入响应的headers和cookies。(例如设置会话cookie), 然后调用 Result.Apply
写入实际响应内容。
标签:Revel
相关阅读 >>
更多相关阅读请进入《Revel》频道 >>

Go语言101
一个与时俱进的Go编程知识库。