我编写了这个Go Lang代码,用于为网页提供模板和通过Go程序传递给参数的值。
// +build
package main
import (
"html/template"
"io/ioutil"
"net/http"
)
type Blog struct {
title string
heading string
para string
}
func loadfile(filename string) (string, error) {
byte, err := ioutil.ReadFile(filename)
return string(byte), err
}
func handler(w http.ResponseWriter, r *http.Request) {
blog := Blog{title: "GoLang", heading: "WebServer", para: "coding"}
t, err := template.ParseFiles("test.html")
fmt.Println(err)
t.Execute(w, blog)
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":9000", nil)
}名为test.html的HTML模板文件如下所示
<html>
<head>
<title>{{.title}}</title>
</head>
<body>
<h1>{{.heading}}</h1>
<p>{{.para}}</p>
</body>
</html> 当我执行程序时,问题是所提供的页面显示为空白。要传递给模板的参数不会显示在呈现的页面上。我甚至打印了错误,但是没有错误。
发布于 2016-12-11 10:43:00
您应该用大写字母写Blog字段的第一个字母,以使它们公开。
type Blog struct {
Title string
Heading string
Para string
}还可以向方法Execute()传递一个映射,如下所示:
b := map[string]string{
"title": "GoLang",
"heading": "WebServer",
"para": "coding",
}
t.Execute(w, b)https://stackoverflow.com/questions/41085135
复制相似问题