Go 模板使用

一  什么是模板 

你一定听说过一种叫做MVC的设计模式,Model处理数据,View展现结果,Controller控制用户的请求,至于View层的处理,在很多动态语言里面都是通过在静态HTML中插入动态语言生成的数据,例如JSP中通过插入<%=....=%>,PHP中通过插入来实现的。

通过下面这个图可以说明模板的机制

Go 模板使用_第1张图片

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}},但是需要注意一点:这个字段必须是导出的(字段首字母必须是大写的),否则在渲染的时候就会报错

Go 模板使用_第2张图片

https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/07.4.md

你可能感兴趣的:(Go 模板使用)