freemarker 将 ${..} 显示为 html 而不是字符串
freemarker display ${..} as html rather than string
我从服务器获取 html 代码以构建 freemarker.ftl。
示例:
服务器return:
String html代码="
你好
";
freemarker.ftl
${html代码}
除了:
你好
实际上:你好
我能做什么?
默认情况下,FreeMarker 没有自动转义,因此它应该将该值打印为 HTML。但事实并非如此,我可以想象两种可能:
- 您在
<#escape x as x?html>...</#escape>
中,或者是由自定义 TemplateLoader
添加到模板中的。在这种情况下,在 2.3.x 中你必须写成 <#noescape>${htmlCode}</#noescape>
。 (在 2.4 中,如果一切按计划进行,它会少得多。)
- 该值在到达 FreeMarker 之前被转义。所以模板已经得到
<h1>Hello</h1>
作为字符串。
我从服务器获取 html 代码以构建 freemarker.ftl。 示例:
服务器return: String html代码="
你好
";freemarker.ftl
${html代码}
除了:
你好
实际上:你好
我能做什么?
默认情况下,FreeMarker 没有自动转义,因此它应该将该值打印为 HTML。但事实并非如此,我可以想象两种可能:
- 您在
<#escape x as x?html>...</#escape>
中,或者是由自定义TemplateLoader
添加到模板中的。在这种情况下,在 2.3.x 中你必须写成<#noescape>${htmlCode}</#noescape>
。 (在 2.4 中,如果一切按计划进行,它会少得多。) - 该值在到达 FreeMarker 之前被转义。所以模板已经得到
<h1>Hello</h1>
作为字符串。