BEFORE:返回的结果是保证是最终的。
AFTER:它可能是一个进一步的拦截器,可以返回自己的结果。
例如
函数拦截器
下面是定义和注册函数拦截器的一个简单例子。
func checkUser(c *revel.Controller) revel.Result {
if user := connected(c); user == nil {
c.Flash.Error("请先登录")
return c.Redirect(App.Index)
}
return nil
}
func init() {
revel.InterceptFunc(checkUser, revel.BEFORE, &Hotels{})
}
方法拦截器
方法拦截器有两种方式的签名:
func (c AppController) example() revel.Result
func (c *AppController) example() revel.Result
下面是个同样的例子,只能拦截一个控制器。
func (c Hotels) checkUser() revel.Result {
if user := connected(c); user == nil {
c.Flash.Error("请先登录")
return c.Redirect(App.Index)
}
return nil
}
func init() {
revel.InterceptMethod(Hotels.checkUser, revel.BEFORE)
}
标签:Revel
相关阅读 >>
更多相关阅读请进入《Revel》频道 >>

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