将值传递给静态页面Golang

时间:2017-05-08 17:07:50

标签: go

我是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。

1 个答案:

答案 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]插入名称。

您应该缓存已解析的模板并更好地处理错误,但这就是一般的想法。