我有一个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
的正确方法是什么?
答案 0 :(得分:1)
像这样:
<td class="green"><@message_in_green?interpret /></td>
其中message_in_green?interpret
将message_in_green
解释为模板,并返回执行该模板的指令,并使用<@... />
调用指令。由于它是一个模板,它还可以包含#if
,#list
等