当我调用Go模板函数以输出HTML时,它将显示ZgotmplZ
。
样例代码:
http://play.golang.org/p/tfuJa_pFkm
package main
import (
"html/template"
"os"
)
func main() {
funcMap := template.FuncMap{
"printSelected": func(s string) string {
if s == "test" {
return `selected="selected"`
}
return ""
},
"safe": func(s string) template.HTML {
return template.HTML(s)
},
}
template.Must(template.New("Template").Funcs(funcMap).Parse(`
<option {{ printSelected "test" }} {{ printSelected "test" | safe }} >test</option>
`)).Execute(os.Stdout, nil)
}
输出:
<option ZgotmplZ ZgotmplZ >test</option>
“ ZgotmplZ”是一个特殊值,指示运行时不安全内容到达CSS或URL上下文。该示例的输出将是:
<img src="#ZgotmplZ">
您可以向模板funcMap添加安全和attr函数:
包主
import (
"html/template"
"os"
)
func main() {
funcMap := template.FuncMap{
"attr":func(s string) template.HTMLAttr{
return template.HTMLAttr(s)
},
"safe": func(s string) template.HTML {
return template.HTML(s)
},
}
template.Must(template.New("Template").Funcs(funcMap).Parse(`
<option {{ .attr |attr }} >test</option>
{{.html|safe}}
`)).Execute(os.Stdout, map[string]string{"attr":`selected="selected"`,"html":`<option selected="selected">option</option>`})
}
输出将如下所示:
<option selected="selected" >test</option>
<option selected="selected">option</option>
您可能需要定义一些其他函数,这些函数可以将字符串转换为template.CSS,template.JS,template.JSStr,template.URL等。
本页和本答案都引用了IP地址172.22.0.3。通过RFC 1918,它在专用网络范围172.16.0.0-172.31.255.255内。它也在我自己的代码中(在docker中运行),但我忘记了为什么。 是Docker默认吗?你能找到推荐人吗?
我是Java新手。我只做了大约一年的编程。Spring使用模板是什么意思?在Spring,有jdbc模板、jms模板等。。java中的模板类是什么?它们是一种特殊的设计模式还是什么? 提前谢谢你。
给定以下代码: 在reduce语句之后我需要什么才能看到reduce的结果?如果一个值被推到输入,我不希望看到任何东西。如果推送具有相同键的第二个值,我希望还原器应用(它确实应用了),并且我还希望还原的结果继续到处理管道中的下一个步骤。正如所描述的,我没有在管道的后续步骤中看到任何东西,我不明白为什么。
以前它工作正常,但现在一切都很慢,而且我没有看到TextField,在层次结构中选择游戏对象时,在编辑器窗口中显示它需要将近5秒的时间。 在此之前,一切都很快,并在编辑器窗口中显示整个层次结构。 现在它是空的: 我从这个问题中得到了答案: 可通过计算机搜索的
我有一个Spring Boot 2.1.6应用程序(Spring 5),我想使用Thymeleaf作为我的模板引擎。我按照在线教程来设置我的项目,视图和控制器,当我想启动它时,我注意到Thymeleaf抱怨说它找不到任何模板: 我想我设置的项目,因为它应该是(至少根据教程和论坛,我可以找到): 我的控制器如下所示: login.html是这样的: 当我打开登录页面时,我得到一个简单的超文本标记语言