2012-05-23 48 views
3

我試圖使用Atlassian產品中嵌入的Velocity引擎(並通過com.atlassian.templaterenderer公開)將JSON值替換爲模板。在Velocity中包含文本JSON內容(避免HTML轉義)

在模板中,這看起來有點像下面這樣:

<script> 
    foo = $foo 
</script> 

然而,當我渲染映射到一個字符串["bar", "baz"]「foo」的模板,輸出如下:

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

這怎麼能避免?

回答

4

Atlassian有一個事件處理程序,它對任何名稱不以WithHtml結尾的變量執行轉義。

因此:

<script> 
foo = $fooWithHtml 
</script> 

根據需要擴大。

1

這不是默認行爲,看起來好像您有EscapeHtmlReference事件處理程序註冊在您的velocity.properties或java初始化中。更多關於事件處理程序的細節here