将价值传递给静态页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.htmlhtml/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}}插入名称。

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

+0

非常感谢!顺便说一句。我如何在静态页面中执行循环? – Angger

+0

{{range .SomeList}} ... {{.SomeField}} ... {{end}} – captncraig