【问题标题】:Including literal JSON content in Velocity (avoiding HTML escapes)在 Velocity 中包含文字 JSON 内容(避免 HTML 转义)
【发布时间】:2012-05-30 05:02:21
【问题描述】:

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

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

<script>
  foo = $foo
</script>

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

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

如何避免这种情况?

【问题讨论】:

    标签: velocity vtl


    【解决方案1】:

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

    因此:

    <script>
    foo = $fooWithHtml
    </script>
    

    根据需要展开。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-12
        • 2020-02-05
        • 1970-01-01
        • 2023-03-09
        相关资源
        最近更新 更多