我正在从数据库中检索一个包含 HTML 和 Freemarker 语法混合的字符串值。
像这样:
<p>${fragment.title}</p>
<table id='resultsTable' class='material-table'>
<tr>
<th>Instruction</th>
<th>Action</th>
</tr>
Test
</table>
以下是我如何在 Freemarker 模板中访问上述字符串:
<#include "inc/header.ftl">
<body>
<#include "inc/navigation.ftl">
<div class="container">
<div class="row">
<#if fragments??>
<#list fragments as fragment>
<div class="col-sm-6">
<div class="fragment">
${fragment.design?html}
</div>
</div>
</#list>
</#if>
</div>
</div>
</body>
<#include "inc/footer.ftl">
但输出不太正确:
<p>${fragment.title}</p> <table id='resultsTable' class='material-table'> <tr> struction</th> </th> </tr> ddd </table>
如何使用Freemarker在解析HTML的同时解析${fragment.title}
的值?
最佳答案
而不是 ${fragment.design?html}
, 使用 <@fragment.design?interpret />
.
相关文档:
?interpret
: http://freemarker.org/docs/ref_builtins_expert.html#ref_builtin_interpret?html
,你在这里不需要: http://freemarker.org/docs/ref_builtins_string.html#ref_builtin_html
注意,如果你需要运行很多?interpret
-s 每秒,并且您倾向于在模板中一次又一次地解释相同的字符串,您可能需要一些自定义解决方案来缓存和重用 Template
-s 由这些字符串制成。但是,在大多数应用程序中,性能不是 ?interpret
的问题。 .
顺便说一句,你不需要那个#if fragments??
如果你使用 <#list fragments! as fragment>
(注意 !
)。
关于java - 如何使用 Freemarker 变量解析 String HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46868752/