【解決了一個小問題】golang gin框架中的模板,讓模板中的參數不要做HTML轉義


代碼中使用了類似的方式來向模板填充參數:

c.HTML(200, "list.html", gin.H{"data":builder.String()})

模板中的語法大致如下:

<html>
   <h1>{{ .data }}</h1>
</html>

發現我輸入的內容都做了HTML轉義。
如何不轉義呢?解決方法很簡單:

import ("html/template")

c.HTML(200, "list.html", gin.H{"data":template.HTML(builder.String())})

同時也學會了一個技巧:
當參數是interface{}類型的時候,如何不增加額外的類型描述的參數來帶入更多信息?
只需要重新定義一個類型,然后做強制類型轉換就行

type HTML string
func foo(param interface{}){
    switch param.(type){
       case string:
           // html encode
       case HTML:
          // direct output
    }
}
foo(HTML("1234"))


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM