在Velocity中包含文字JSON内容(避免HTML转义)

时间:2012-05-23 15:44:22

标签: velocity vtl

我正在尝试使用Atlassian产品中嵌入的Velocity引擎(并通过com.atlassian.templaterenderer公开)将JSON值替换为模板。

在模板中,这看起来有点像:

<script>
  foo = $foo
</script>

但是,当我使用映射到字符串["bar", "baz"]的“foo”呈现模板时,输出如下:

<script>
  foo = [&quot;bar&quot;, &quot;baz&quot;]
</script>

如何避免这种情况?

2 个答案:

答案 0 :(得分:5)

Atlassian有一个事件处理程序,它对任何名称不以WithHtml结尾的变量执行转义。

因此:

<script>
foo = $fooWithHtml
</script>

根据需要扩展。

答案 1 :(得分:1)

这不是默认行为,看起来您在EscapeHtmlReference或java初始化中注册了velocity.properties事件处理程序。有关事件处理程序的更多详细信息here