zoukankan      html  css  js  c++  java
  • 【解决了一个小问题】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"))
    
  • 相关阅读:
    Django模型层进阶
    Django模型层相关
    BOM与DOM
    JavaScript入门
    HTML基础
    子查询/联合分组/all与any/视图/事务
    表的查询
    mysql的多表关系
    Mysql基本操作
    Spider_基础总结2_Requests异常
  • 原文地址:https://www.cnblogs.com/ahfuzhang/p/12786947.html
Copyright © 2011-2022 走看看