我是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>
我想将“name”变量传递给静态页面“sayName.html”并在那里打印。我该如何实现这一目标? THKS。
答案 0 :(得分:1)
使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/template
并在每个请求上执行它的常用方法。
然后你的处理程序就像:
{{.Name}}
您的html模板可以使用[height, width, 1]
插入名称。
您应该缓存已解析的模板并更好地处理错误,但这就是一般的想法。