是否有用于迭代处理自由标记字符串结果的内置函数?

问题描述 投票:0回答:1

我有一个用例,我想递归处理自由标记处理的结果。

因此,如果我有一个包含以下数据的Map变量

var = {"a" : "${b}", "b" : "Value I want"}

我的输入字符串是

"Input string is ${a}"

如果我使用Template.process(var,stringWriter)处理一次,则得到结果

"Input string is ${b}"

我需要再次处理以得到

"Input string is Value I want"

我正在寻找的是像Template.process(var,stringWriter)这样的内置函数,它对结果进行迭代处理。是否存在这样的功能?

我可以自己递归处理,但我正在寻找是否已存在这种功能。

注意:我要发布第一个问题,所以请不要介意我错过了一些规范

java freemarker
1个回答
0
投票
FreeMarker API中没有此类功能。

看起来您需要一个数据模型,其中的键是ab等,其值将是TemplateScalarModel -s,其中getAsString会懒惰地创建(通过new Template),使用相同的数据模型处理模板,然后存储其结果供以后重用。您还需要共享一组正在处理的变量名,以检测循环依赖项。

© www.soinside.com 2019 - 2024. All rights reserved.