{{define "layout"}}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"><html><head><title>Title</title></head><body>
{{template "head" }}<br/>
中间的内容<br/>
{{template "foot" }}
</body></html>
{{end}}
{{define "head"}}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"><html><head><title>Title</title></head><body>
head.html
</body></html>
{{end}}
{{define "foot"}}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"><html><head><title>Title</title></head><body>
foot.html
</body></html>
{{end}}
package main
import("net/http""html/template")funcwelcome(w http.ResponseWriter, r *http.Request){//要加载所有需要被嵌套的文件
t,_:= template.ParseFiles("view/index.html","view/head.html","view/foot.html")//执行主模版,主要调用的方法
t.ExecuteTemplate(w,"layout",nil)}funcmain(){
server := http.Server{Addr:":8090"}
http.HandleFunc("/", welcome)
server.ListenAndServe()}
{{define "layout"}}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"><html><head><title>Title</title></head><body>
{{template "head" "head的参数"}}<br/>
中间的内容<br/>
{{template "foot" "foot的参数"}}
</body></html>
{{end}}
在子模版中依然是使用{{.}}获取传递过来的参数
{{define "head"}}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"><html><head><title>Title</title></head><body>
head.html
{{.}}
</body></html>
{{end}}