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

Cha*_*ffy 4 velocity vtl

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

在模板中,这看起来有点像以下内容:

<script>
  foo = $foo
</script>
Run Code Online (Sandbox Code Playgroud)

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

<script>
  foo = [&quot;bar&quot;, &quot;baz&quot;]
</script>
Run Code Online (Sandbox Code Playgroud)

如何避免这种情况?

Cha*_*ffy 5

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

从而:

<script>
foo = $fooWithHtml
</script>
Run Code Online (Sandbox Code Playgroud)

根据需要扩展.