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 任务是接收数据并把数据写入DAC7311,这些代码能实现此功能吗
  • ¥15 分析FP -Growth代码运行内存太大而无法运行的原因
  • ¥20 qtcreat 使用msvc编译器开发软件运行时字体锯齿感严重
  • ¥15 为何显示keyerror fruit
  • ¥15 关于#stm32#的问题:/* User can add his own implementation to report the HAL error return state */
  • ¥15 imageware粗糙度表面
  • ¥15 python使用pulp线性优化时报错
  • ¥15 为什么我的uibot导入py模块出错呀。py文件放在了uibot里对应的python文件夹了,卸了重安也不行
  • ¥15 开源或低价数据中台哪个最好
  • ¥15 arduino编程出现字符串疑似覆盖现象