为了账号安全,请及时绑定邮箱和手机立即绑定

如何获得模板渲染的结果

如何获得模板渲染的结果

Go
森林海 2021-05-03 17:26:22
我刚接触golang。这是我的问题:我想获取template.Execute的字符串结果,并且我不想直接对http.ResponsWriter执行这是我的代码,它似乎无法正常工作package mainimport (    "fmt"    "os"    "template")type ByteSlice []bytefunc (p *ByteSlice) Write(data []byte) (lenght int, err os.Error) {    *p = data    return len(data), nil}func main() {    page := map[string]string{"Title": "Test Text"}    tpl, _ := template.ParseFile("test.html")    var b ByteSlice    tpl.Execute(&b, &page)    fmt.Printf(`"html":%s`, b)}和text.html:<html><body>    <h1>{{.Title|html}}</h1></body></html>但是我得到的是"html":</h1></body></html>
查看完整描述

1 回答

?
暮色呼如

TA贡献1853条经验 获得超9个赞

ByteSlice的Write方法有问题。它应该将新数据附加到已写入的数据上,但是您的版本将替换已写入的数据。模板代码可能多次调用Write,因此最终只能打印出最后写入的内容。

代替创建ByteSlice,使用bytes.Buffer


查看完整回答
反对 回复 2021-05-10
  • 1 回答
  • 0 关注
  • 215 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信