golang 中 Template 的使用
Posted ythunder
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang 中 Template 的使用相关的知识,希望对你有一定的参考价值。
项目需求:
- 将map中的内容部分填充到表格
- 没有数据的填写符号” - ”
Go 的html/template包对HTML模板提供了丰富的模板语言。主要用于Web应用程序,在客户端的浏览中以结构化的方式显示数据。
go提供的模板填充接口,支持各种所以结构。
当渲染模板时,要访问模板中的数据,最前的变量是通过. 来访问。其中花括号中的点(.) 称为管道和root。
模板使用语法:
/* comment */ 定义一个注释
.Title 在嵌套元素中显示Title对应的字段
. 显示根元素
if .Title else end if else条件选择
range .Title . end 在Title上做循环显示每个元素
接口调用代码:
func getResultHtml(mapInfo map[string]string) string
buf := new(bytes.Buffer)
//new 模板,命名temHtml
temEmailHtml, _ := template.New("temHtml").Parse(templateEmail)
//将mapInfo信息添加到模板,结果存入buf
//buf默认为输入流对象,默认输出到终端
temEmailHtml.Execute(buf, mapInfo)
return buf.String()
var mapInfo = map[string]string
"name":"云霆","sex":"男","math":"100"
模板定义:
const templateEmail = `<html><body><table style='width:100%'><tr style='width:100%'><th style='width:60%;'> 服务 </th><th style='width:40%'> 资源使用占比 </th></tr>
<tr><td align='center'>姓名</td>
if .name<td align='center'>.name</td><tr> else <td align='center'> - </td><tr> end
<tr><td align='center'>性别</td>
if .sex<td align='center'>.sex%</td><tr> else <td align='center'> - </td><tr> end
<tr><td align='center'>颜色</td>
if .color <td align='center'>.color%</td><tr> else <td align='center'> - </td><tr> end
<tr><td align='center'>高数</td>
if .math <td align='center'>.math%</td><tr> else <td align='center'> - /td><tr> end
<tr><td align='center'>大英</td>
if .english <td align='center'>.english%</td><tr> else <td align='center'> - </td><tr> end
<tr><td align='center'>语文</td>
if .chinese <td align='center'>.chinese%</td><tr> else <td align='center'> - </td><tr> end
</table></body></html>`
结果返回表格形式的html字符串,没有获取到数据的为-
以上是关于golang 中 Template 的使用的主要内容,如果未能解决你的问题,请参考以下文章
Golang template和junit xml report转html工具