Golang Web下返回HTML内容处理方法

有两种显示方式,都是一样的,假设我们的方法就叫say,两种调用如下:

{{ say "<div style=\"\">你好</div>" }}
{{"<div style=\"\">你好</div>" |say}}

 

 master是主模板


如果我们要在模板中和页面中都要做这种处理,我们见下面的代码
主模板代码
复制代码
<!DOCTYPE html>
<html>
<head>
</head>
<body>
     <p>模板上面内容</p>
     {{block "context" .}}{{end}}
     <p>模板下面内容</p>
     {{ say "<div style=\"background-color:red;\">你好</div>" }}
</body>
</html>
复制代码

页面内容

{{template "master" .}}
{{define "context"}}
    {{"<div style=\"background-color:red;\">你好</div>" |say}}
    {{.}}
    <p>user内容</p>
{{end}}

在模板中和页面中都 显示HTML内容,我们可以通过template.New().Funcs() 设置 一个处理方法

见Main()代码

复制代码
package main

import (
    "github.com/gin-gonic/gin"
    "html/template"
    "log"
)

// 通过该方法可以将内容以HTML的形式输出,返回类型为template.HTML
func say(s string) template.HTML  {
    return  template.HTML(s)

}

func main(){
engin:=gin.Default() engin.GET(
"/user", func(context *gin.Context) { // 设定funcMap funcMap:=template.FuncMap{"say":say,} // 创建模板并加入设置FuncMap t,err:= template.New("user").Funcs(funcMap).ParseFiles("./view/template/master", "./view/user/user") if err!=nil{ log.Panicln("template.funcs err:",err) } t.ExecuteTemplate(context.Writer,"user","中间内容") }) engin.Run() }
复制代码

结果

 

posted @   酒沉吟  阅读(5657)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
历史上的今天:
2013-07-25 Jquery编历数组
点击右上角即可分享
微信分享提示