一 什么是模板
你一定听说过一种叫做MVC的设计模式,Model处理数据,View展现结果,Controller控制用户的请求,至于View层的处理,在很多动态语言里面都是通过在静态HTML中插入动态语言生成的数据,例如JSP中通过插入<%=....=%>,PHP中通过插入来实现的。
通过下面这个图可以说明模板的机制
Web应用反馈给客户端的信息中的大部分内容是静态的,不变的,而另外少部分是根据用户的请求来动态生成的,例如要显示用户的访问记录列表。用户之间只有记录数据是不同的,而列表的样式则是固定的,此时采用模板可以复用很多静态代码
二 Template 使用
package main
import(
"html/template"
"os"
)
type Person struct{
UserName string//必须大写,否则不能显示
Emails []string
Friends []*Friend
}
func main() {
t := template.New("fieldname example")
t,_ = t.Parse("hello {{.UserName}}!")
p := Person{UserName:"Astaxie"}
t.Execute(os.Stdout,p)
//foo()
}
Go语言的模板通过{{}}来包含需要在渲染时被替换的字段,{{.}}表示当前的对象,这和Java或者C++中的this类似,如果要访问当前对象的字段通过{{.FieldName}},但是需要注意一点:这个字段必须是导出的(字段首字母必须是大写的),否则在渲染的时候就会报错
https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/07.4.md
有疑问加站长微信联系(非本文作者)