freemarker将$ {..}显示为html而不是字符串

时间:2015-03-02 08:50:12

标签: java freemarker

我从服务器获取html代码来构建freemarker.ftl。 例如:

服务器返回: String htmlCode =“< h1> Hello< / h1>”;

freemarker.ftl

$ {htmlCode}

除了:

你好

实际上:< h1> Hello< / h1>

我能做什么?

2 个答案:

答案 0 :(得分:2)

默认情况下,FreeMarker没有自动转义,因此它应该将该值打印为HTML。但正如你所说,我可以想象两种可能性:

  • 您位于<#escape x as x?html>...</#escape>内,或已由自定义TemplateLoader添加到模板中。在这种情况下,在2.3.x中你必须写<#noescape>${htmlCode}</#noescape>。 (在2.4中,如果一切按计划进行,将会更加冗长。)
  • 该值在到达FreeMarker之前被转义。因此模板已经以&lt;h1&gt;Hello&lt;/h1&gt;作为字符串。

答案 1 :(得分:-3)

String htmlCode =“Hello”;

<h1> $ {htmlCode} </h1>