如何获取 Go html/template 中地图元素的结构字段?

2023-12-13

我有一个结构Task:

type Task struct {
   cmd string
   args []string
   desc string
}

我初始化了一张采用上述内容的地图Taskstruct 作为一个值和一个string作为键(任务名称)

var taskMap = map[string]Task{
    "find": Task{
        cmd: "find",
        args: []string{"/tmp/"},
        desc: "find files in /tmp dir",
    },
    "grep": Task{
        cmd: "grep",
        args:[]string{"foo","/tmp/*", "-R"},
        desc: "grep files match having foo",
    },
}

我想使用解析 html 页面html/template只需使用上面的taskMap.

func listHandle(w http.ResponseWriter, r *http.Request){
    t, _ := template.ParseFiles("index.tmpl")
    t.Execute(w, taskMap)
}

这里是index.tmpl:

<html>
{{range $key, $value := .}}
   <li>Task Name:        {{$key}}</li>
   <li>Task Value:       {{$value}}</li>
   <li>Task description: {{$value.desc}}</li>
{{end}}
</html>

我可以得到$key and value打印成功,但是当涉及到领域时Task using {{$value.desc}}它不会起作用。

我怎样才能得到desc每个task在这种情况下?


注意:您可以尝试/检查您的工作修改代码去游乐场.


如果你想要template为了能够访问这些字段,您必须导出这些字段。您可以通过以大写字母开头来导出字段:

type Task struct {
   cmd string
   args []string
   Desc string
}

请注意,我只改变了Desc在这里,您必须将要在模板中引用的任何其他字段大写。

导出后,将所有引用更改为大写Desc当然:

var taskMap = map[string]Task{
    "find": Task{
        cmd: "find",
        args: []string{"/tmp/"},
        Desc: "find files in /tmp dir",
    },
    "grep": Task{
        cmd: "grep",
        args:[]string{"foo","/tmp/*", "-R"},
        Desc: "grep files match having foo",
    },
}

也在模板中:

<html>
{{range $key, $value := .}}
   <li>Task Name:        {{$key}}</li>
   <li>Task Value:       {{$value}}</li>
   <li>Task description: {{$value.Desc}}</li>
{{end}}
</html>

Output:

<html>

<li>Task Name:        find</li>
<li>Task Value:       {find [/tmp/] find files in /tmp dir}</li>
<li>Task description: find files in /tmp dir</li>

<li>Task Name:        grep</li>
<li>Task Value:       {grep [foo /tmp/* -R] grep files match having foo}</li>
<li>Task description: grep files match having foo</li>

</html>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取 Go html/template 中地图元素的结构字段? 的相关文章

  • Blade中的Section和Stack有什么区别?

    我们可以使用一个section定义一些 HTML 然后yield那在其他地方 那么为什么我们有堆栈呢 https laravel com docs 5 2 blade stacks https laravel com docs 5 2 bl
  • bazel go_embed_data“无法嵌入”

    我将以下 bazel BUILD 配置为 gazelle name gazelle go embed data name static files srcs glob static package main var staticFS go
  • 友元模板特化声明中不允许使用 Constexpr 吗?

    我正在移植 C 14 constexpr代码库从 Clang 到最新的 g 5 1 考虑以下本土开发的简化代码片段bitset自 Clang 3 3 的太平岁月以来 现在已经快 2 年了 该类就一直可以正确编译 include
  • 在 Go 中调用外部命令

    如何在GO中调用外部命令 我需要调用外部程序并等待它完成执行 在执行下一条语句之前 您需要使用执行包 http golang org pkg os exec 使用启动命令Command http golang org pkg os exec
  • 2012 年推荐的 jQuery 模板? [复制]

    这个问题在这里已经有答案了 jQuery 模板已被弃用一段时间了 我有一些 JavaScript 对象形式的数据 我想将其格式化为 HTML 并附加到 DOM 如今最好的方法是什么 我应该构建一个 HTML 字符串吗 我应该通过 jQuer
  • 交叉编译共享库

    我想知道是否有可能 如果是的话 如何 与 Go 交叉编译共享库 假设我有这段代码 package main import C export DoubleIt func DoubleIt x int int return x 2 func m
  • 如何在 Docker 容器中持久保存 go 1.11 模块?

    我正在将 Go 1 10 应用程序迁移到 Go 1 11 这还包括从dep https golang github io dep to mod https github com golang go wiki Modules用于管理依赖关系
  • Django 是否有一个模板标签可以检测 URL 并将其转换为超链接?

    当有人写一篇文章并复制并粘贴一个网址时 Django 可以检测到它并将其呈现为超链接而不是纯文本吗 姜戈有urlize 模板过滤器 http docs djangoproject com en stable ref templates bu
  • C++ 检测类型是否有模板参数

    我想统一一个接口来处理模板化和非模板化类型 有没有办法确定类型 例如类或函数指针 是否依赖于模板参数 例如 struct foo template
  • 模板语言与直接 PHP

    我要编写一个 CMS 但现在我正在写下我所有的想法 并试图在开始之前理清我的所有概念 我纠结的一件事是是否使用模板语言并解析网站页面 并用内容项替换模板标签 或者只是使用直接 PHP 开发网站并让 CMS 生成有帮助的数据结构 例如 nav
  • C++ 类型特征

    我知道它们对有关您实例化它们的类型的信息进行编码 但是它们是如何工作的 比如说 类型特征std is class 它是如何工作的 所有的实现看起来都像是空的结构 我必须承认我正在摸不着头脑 这些名字看起来足够具有描述性 所以我能理解它们的意
  • 如何退出执行延迟调用的 go 程序?

    我需要使用defer释放手动创建的分配C图书馆 但我还需要os Exit在某个时刻具有非 0 状态 棘手的部分是os Exit跳过任何延迟指令 package main import fmt import os func main defe
  • 使用指针接收器调用函数的 Go 语法

    在Go中 如果我定义一个带有指针的函数作为接收者 它是否应该只允许从指针调用该函数 为什么从值本身调用这个函数就可以 并且有同样的效果 例如 在以下程序中 m1 reset 和 m2 reset 具有相同的效果 即使 m1 是一个值而 m2
  • Golang 使用 gomail.v2 实现多个收件人

    我通过 gomail v2 发送电子邮件的唯一方法是在 for 循环中对每封电子邮件使用 Send 函数 但我需要向其他电子邮件地址显示已发送相同的电子邮件 for recipient range os Args 3 mail SetAdd
  • 简化模板

    我有一堆用于 rpc 的模板 想知道是否有一种方法可以在重复自我分配时简化它们 我知道模板的 varags 将出现在下一个标准中 但是您可以为模板设置默认值吗 还有一种方法可以像普通函数一样处理 void 返回函数吗 Atm 我必须将它们分
  • C++ - 模板类中模板函数的单独声明/定义

    我知道在标头中声明模板类方法并在源文件中定义它的语法如下 myclass h template
  • 如何从 gorm 中的模型获取表名?

    是否可以获得模型的表名 我发现可以从模型结构但我不知道如何正确地做到这一点 我没有找到该结构的任何初始化 user User tableName db 对于 Gorm v2 根据https github com go gorm gorm i
  • 如何在 Django 模板上使用 if/else 条件?

    我将以下字典传递给渲染函数 源是字符串列表 标题是可能等于源中字符串之一的字符串 title title sources sources 在 HTML 模板中 我想完成以下几行内容 for source in sources tr td s
  • 私有模板函数

    我有一堂课 C h class C private template
  • 使用结构解析 YAML

    我创建了以下 YAML 文件来提供用户需要提供的一些配置 Environments sys1 models app type app1 service type fds app type app2 service type era sys2

随机推荐

  • 通道功能 V1_3 是必需的,但不支持:在 Hyperledger Fabric 中制作我的第一个网络

    在 OSX 上启动我的第一个 Hyperledger 网络 我使用脚本安装了示例文件 curl sSL http bitlyURLThatStackoverflow won t let me us bash s 1 2 1 The ran
  • Python 打包:pyproject.toml 中的构建需求 VS setup_requires

    在有点复杂的Python中setup py配置 通常需要已经存在的其他库才能执行setuptools setup 就我而言 这将是setuptools gt 45 0 and cython gt 0 29 现在 我有两个选项来声明这些构建时
  • Java 2d 鼠标点方向旋转

    到目前为止 我有一个java应用程序 我在其中画一个圆圈 玩家 然后在顶部画一个绿色矩形 枪管 我有它 所以当玩家移动时 桶会随之移动 我希望它找到鼠标指向的位置 然后相应地旋转桶 有关我的意思的示例 请观看我发现的这个视频http www
  • UWP 的 BroadFileSystemAccess 不起作用

    我正在编写一个应用程序 它需要访问文本文件的权限 因为未经许可它会抛出异常 访问被拒绝 我添加到 Package appxmanifest 特定行 xmlns rescap http schemas microsoft com appx m
  • pandas dataframe 选择多索引中的列[重复]

    这个问题在这里已经有答案了 我有以下 pd DataFrame Name 0 1 Col A B A B 0 0 409511 0 537108 0 355529 0 212134 1 0 332276 1 087013 0 083684
  • 正则表达式将 img 标签与特定属性类匹配

    我很长时间都在与这个正则表达式作斗争 但我找不到任何解决办法 我使用基于 javascript 的工具来测试和编写表达式 当放入php页面并与preg匹配时 结果是不同的
  • openssl - 通过 Java 解密

    全部 我正在努力解决这个问题 我有包含命令的bat文件 openssl smime decrypt binary inform DER recip path to certificate inkey path to private key
  • 重新安装 Visual Studio 2017 本地主机证书

    在安装 VS2017 的过程中 或者稍后 程序会安装一个用于本地开发的证书 一切都工作正常 直到我安装了 Fiddler 从那一刻起 VS2017 证书停止工作 每当我导航到本地主机应用程序时 我都会收到 您的连接不是私有的 消息 有什么想
  • 有没有办法使用最新的 Facebook 应用程序评论来获得 Facebook read_stream 权限?

    我正在开发社交网络 iPhone 应用程序 其中我们有 facebook 作为选项之一 我们必须显示用户的提要 但为此我需要read stream允许 不幸的是 我们的应用程序尚未经过验证 这是我们从 Facebook 审核团队收到的消息
  • 如何从因重新启动而离开的位置继续安装?

    在安装某些软件包期间重新启动后如何继续安装程序 实际上 我已经使用构建了一个项目的安装程序包WiX 捆绑包 有不同的包要安装在链中 但是当它安装微软时Windows安装程序4 5 msi 它将重新启动电脑 重新启动后 我希望安装继续 我怎样
  • 在python中使用bing或google API获取位置坐标

    这是我的问题 我有一个示例文本文件 我在其中通过抓取各种 html 页面来存储文本数据 该文本包含有关各种事件及其时间和地点的信息 我想获取这些位置的坐标 我不知道如何在 python 中做到这一点 我正在使用 nltk 来识别此示例文本中
  • Android - 方向变化时的动态片段问题

    我在动态片段方面遇到问题 如果我不改变方向 它就可以正常工作 当我改变方向时 我单击 ListView 项目 这不是改变 textview 这是 DynamicActivity 类 public class DynamicActivity
  • Selenium 无法启动 IE。

    Selenium 无法启动 IE 10 56 25 005 INFO org openqa selenium server SeleniumDriverResourceHandler Command request getNewBrowse
  • Angular HTTP 循环 [重复]

    这个问题在这里已经有答案了 我对 Angular 应用程序有疑问 我有一个包含语言短代码的数组 en fr 基本上 我希望 Angular 在该数组上循环并对每个值发出 HTTP get 请求 for var i in scope lang
  • 当内容类型为文本/纯文本时,.NET Core 1.0 Web Api 将请求正文处理为 JSON

    我需要使用的供应商 API 正在发送内容类型为 text plain 且正文中为 JSON 的 POST 请求 如何在 net core 1 0 web api中解析它 我确定我需要做类似的事情this 下面的代码 答案 但我不知道如何在
  • 使用 Flexbox 在 Bootstrap3 轮播中垂直居中内容

    我试图将 h3 和 p 元素集中在 div 中 更准确地说是 Bootstrap 的 carousel caption 我已经给 carousel caption 固定的高度和宽度 我试图将 h3 和 p 垂直对齐到 theid 父 div
  • COM 类工厂错误

    我一直在使用我的机器作为服务器来测试应用程序 一切都很顺利 但是当我尝试将其设置为在测试服务器上运行时 出现以下错误 检索 COM 类工厂 CLSID 为 XXXX 的组件因故障而失败 出现以下错误 80040154 有任何想法吗 Than
  • 小于给定数字并且没有重复数字的数字数量

    我们怎样才能找到小于给定数字并且其中没有重复数字的数字的个数 例如 小于100的此类数字的数量为90个 11 22 33 44 55 66 77 88 99有重复数字 因此被排除 同样 对于小于 1000 的数字 如 101 110 122
  • Target="_blank" 与 window.open

    我正在开发一个应用程序 用户输入一些输入 并且在单击共享链接时不应该离开页面 例如Facebook 分享链接 a href https www facebook com sharer php u http 3A 2F 2Fwww examp
  • 如何获取 Go html/template 中地图元素的结构字段?

    我有一个结构Task type Task struct cmd string args string desc string 我初始化了一张采用上述内容的地图Taskstruct 作为一个值和一个string作为键 任务名称 var tas