如何在Go中使用struct中的数据生成html



我有一个类似email.html:的html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Shareholder</title>
</head>
<body>
<h1> {{.PageTitle}} </h1>
</body>
</html>

我这样称呼:

func main() {
theTemplateHTML, err := template.New("").ParseFiles("./pkg/template/email.html")
if err != nil {
log.Fatal(err)
}
log.Println(theTemplateHTML)
type Email struct {
PageTitle string
}
var email Email
email = Email{
PageTitle: "Hello Word",
}
err = theTemplateHTML.Execute(os.Stdout, &email)
if err != nil {
log.Fatal(err)
}
log.Println(theTemplateHTML)
}

第一个日志上的输出是&{<nil> 0xc0000b0080 <nil> 0xc0000d0050}

我得到的最后一个日志错误是这样的template: "" is an incomplete or empty template

这是html的输出吗?以及我如何用stuct在那个html中定义{{.PageTitle}}??

如何纠正在该html中定义结构的方式,并能够通过字符串查看结果,因为我希望该模板是字符串?

您不需要template.New("")调用。template.ParseFiles("./pkg/template/email.html")将起作用。

编辑:您还需要删除最后一行log.Println

最新更新