我想将动态字符串传递给FTL宏。但是当我从FTL调用宏时,我不希望插入模板字符串。我希望模板字符串只在Macro内插。这样我就可以通过发送动态模板字符串作为参数来使宏可重用。由于我是Apache FTL的新手,所以我不知道如何继续。
答案 0 :(得分:0)
不确定你想要达到什么目标,但我猜是这样的:
<#macro m s>
<#local parsedS = s?interpret>
<#list ['John Doe', 'Jane Doe'] as name>
<p><@parsedS />
</#list>
</#macro>
<@m r"Hello ${name}!" />
将打印:
<p>Hello John Doe!
<p>Hello Jane Doe!
一些注意事项:
#if
等值
s
)。?interpret
的结果分配给本地
变量,否则你只能写<@s?interpret />
。r
告诉FreeMarker ${}
(和\
转义)不得解释。