template.Execute() - эта функция и записывает куда вам надо. Первым аргументом отдаёте куда писать, вторым какие данные в шаблоне доступны. Т.е. мы в него отправляем http.ResponseWriter, а вторым ваше отображение "p".
package main
import (
"html/template"
"io/ioutil"
"net/http"
)
func hello(res http.ResponseWriter, req *http.Request) {
bs, err := ioutil.ReadFile("TestPage.txt")
if err != nil {
return
}
str := string(bs)
t := template.New("Test Template")
t, _ = t.Parse(str)
p := map[string]string{
"H": "Hydrogen",
"He": "Helium",
}
res.Header().Set(
"Content-Type",
"text/html",
)
t.Execute(res, p)
}
func main() {
http.HandleFunc("/hello", hello)
http.ListenAndServe(":8080", nil)
}