dongyi2534 2016-08-06 12:26
浏览 730
已采纳

如何在Golang模板中打印换行? [重复]

This question already has an answer here:

I have stored some content in MySQL that looks like this.

"Hi!
How are you?
Here is the link you wanted:
http://www.google.com"

When I print it in Golang template, its not parsing correctly. I mean everything displayed in one line.

Its supposed to print like this

Hi!
How are you?
Here is the link you wanted:
http://www.google.com

Here is my template code.

<tr>
    <td>TextBody</td>
    <td>{{.Data.Content}}</td>
</tr>

Am I missing something?

</div>
  • 写回答

2条回答 默认 最新

  • dotcraq3249 2016-08-06 13:49
    关注

    To print this in browser, replace with e.g. <br>
    like body = strings.Replace(body, " ", "<br>", -1)
    See this working sample code:

    package main
    
    import (
        "bytes"
        "fmt"
        "html/template"
        "log"
        "net/http"
        "strings"
    )
    
    func main() {
        http.HandleFunc("/", ServeHTTP)
        if err := http.ListenAndServe(":80", nil); err != nil {
            log.Fatal(err)
        }
    }
    
    func ServeHTTP(w http.ResponseWriter, r *http.Request) {
        html := `
    <!DOCTYPE html>
    <html>
    <body>  
    <table style="width:100%">
      <tr>
        <th>Data</th>
        <th>Content</th> 
      </tr> 
      <tr>
        <td>{{.Data}}</td>
        <td>{{.Content}}</td>
      </tr>
    </table> 
    </body>
    </html>
    `
        st := "Hi!
    How are you?
    Here is the link you wanted:
    http://www.google.com"
        data := DataContent{"data", st}
    
        buf := &bytes.Buffer{}
        t := template.Must(template.New("template1").Parse(html))
        if err := t.Execute(buf, data); err != nil {
            panic(err)
        }
        body := buf.String()
        body = strings.Replace(body, "
    ", "<br>", -1)
        fmt.Fprint(w, body)
    }
    
    type DataContent struct {
        Data, Content string
    }
    

    To see the output, run this code and open your browser at http://127.0.0.1/

    Also see: html/templates - Replacing newlines with <br>

    I hope this helps.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 微服务假死,一段时间后自动恢复,如何排查处理
  • ¥15 cplex运行后参数报错是为什么
  • ¥15 之前不小心删了pycharm的文件,后面重新安装之后软件打不开了
  • ¥15 vue3获取动态宽度,刷新后动态宽度值为0
  • ¥15 升腾威讯云桌面V2.0.0摄像头问题
  • ¥15 关于Python的会计设计
  • ¥15 聚类分析 设计k-均值算法分类器,对一组二维模式向量进行分类。
  • ¥15 stm32c8t6工程,使用hal库
  • ¥15 找能接spark如图片的,可议价
  • ¥15 博通raid 的写入速度很高也很低