在 Velocity 中包含文字 JSON 内容(避免 HTML 转义)
Posted
技术标签:
【中文标题】在 Velocity 中包含文字 JSON 内容(避免 HTML 转义)【英文标题】:Including literal JSON content in Velocity (avoiding HTML escapes) 【发布时间】:2012-05-30 05:02:21 【问题描述】:我正在尝试使用 Atlassian 产品中嵌入的 Velocity 引擎(并通过 com.atlassian.templaterenderer 公开)将 JSON 值替换为模板。
在模板中,这看起来有点像以下:
<script>
foo = $foo
</script>
但是,当我使用映射到字符串["bar", "baz"]
的“foo”渲染模板时,输出如下:
<script>
foo = ["bar", "baz"]
</script>
如何避免这种情况?
【问题讨论】:
【参考方案1】:Atlassian 有一个事件处理程序,它对名称不以Withhtml
结尾的任何变量执行转义。
因此:
<script>
foo = $fooWithHtml
</script>
根据需要展开。
【讨论】:
【参考方案2】:这不是默认行为,看起来您在 velocity.properties
或 java 初始化中注册了 EscapeHtmlReference
事件处理程序。有关事件处理程序的更多详细信息here。
【讨论】:
以上是关于在 Velocity 中包含文字 JSON 内容(避免 HTML 转义)的主要内容,如果未能解决你的问题,请参考以下文章
用代码方式制作一个网站,内容自选; 至少包含3个网页,网页中包含必要的文字或图像;