Freemarker中的嵌套插值

时间:2017-08-24 02:16:06

标签: freemarker

我有一个messages.properties文件,其中包含一些用于替换模板内变量的文本。假设我的模板具有以下内容:

zone.js:661 Unhandled Promise rejection: Failed to load checklist.component.html ; Zone: <root> ; Task: Promise.then ; Value: Failed to load checklist.component.html undefined

我的message.properties然后:

<tr>
  <td class="green">${message_in_green}</td>
</tr>

在我的Java代码中,我创建了一个存储message_in_green=Click <a href="${back_link}">here</a> to go back. 的Map(以及其他东西......我可以使用插值直接在模板中引用):

back_link

最终结果data.put("back_link", "http://blah.com"); 未被back_link取代,我有点期待。我可以在Freemarker中进行如上所述的嵌套插值(其中模板引用属性文件中的文本字符串,文本字符串引用在Java代码中设置的内容)?如果是这样,替换http://blah.com的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

像这样:

<td class="green"><@message_in_green?interpret /></td>

其中message_in_green?interpretmessage_in_green解释为模板,并返回执行该模板的指令,并使用<@... />调用指令。由于它是一个模板,它还可以包含#if#list