将价值传递给静态页Golang
问题描述:
我是Golang的新手。如何将值传递给静态页面?将价值传递给静态页Golang
假设我有这样的代码:
// webtes project main.go
package main
import (
"log"
"net/http"
)
func main() {
http.HandleFunc("/sayName", func(writer http.ResponseWriter, r *http.Request) {
name := "Jon Snow"
http.ServeFile(writer, r, "static/sayName.html")/*How do I pass 'name' to this static page and print it?*/
})
log.Fatal(http.ListenAndServe(":8081", nil))
}
静态/ sayName.html
<!doctype html>
<html>
<head></head>
<body>{/*print name here*/}</body>
</html>
我想通过 “名” 变量静态页面 “sayName.html”,并打印有。我如何实现这一目标? THKS。
答
制定sayName.html
和html/template
的常用方法,并在每个请求上执行它。
那么你的处理程序是这样的:
func templateHandler(w http.ResponseWriter, r *http.Request){
tplTxt,err := ioutil.ReadFile(...)
//error handling
tpl := template.Must(template.New("").Parse(string(tplTxt)))
templateData := map[string]interface{}{"Name":"Jon Snow"}
tpl.Execute(w, templateData)
}
而且你的HTML模板可以使用{{.Name}}
插入名称。
您应该缓存解析的模板并更好地处理错误,但这是一般的想法。
非常感谢!顺便说一句。我如何在静态页面中执行循环? – Angger
{{range .SomeList}} ... {{.SomeField}} ... {{end}} – captncraig