我们在写web程序的时候应该会经常遇到这样的情况,一些共有字段,比如用户名,每个渲染函数中都要传这些共有的参数,如何去掉这些重复的工作呢?使用继承即可,下面是代码示例:
代码示例:
package test
import "github.com/astaxie/beego"
// 这里是base结构体
type Base struct {
beego.Controller
}
// 共有字段获取并且渲染的方法
func (b *Base)BaseRender() {
username := b.GetSession("username")
b.Data["username"] = username
}
type Test struct {
Base // 匿名字段,就是继承的意思,这样就会拥有base的所有方法
}
func (t *Test) List() { // 只需要在需要渲染共有字段的函数中调用下
// 这样就会直接渲染一些共有的字段,
// 比如前面session中获取的username,不需要每个函数中都写一次
t.BaseRender() // 相当于执行了t.Data["username] = t.GetSession("username")
t.TplName = "test.html"
} 


