Freemarker 中的 While 循环

While loop in Freemarker

如何在 Freemarker(FTL) 中创建类似的循环 在 freemarker 中我有这样的声明:

<#if myVariable?? >
  // do stuff
</#if>

我想将其转换为 while 循环,可以吗?

Javascript-我要复制的代码

while (myVariable != null) {
  // do stuff
}

如果不可能,Freemarker 中的递归方法如何?

模板语言仅支持通过#list循环。所以如果你需要做那种循环,解决方法是这样的:

<#list 0..1000000000 as _>
  <#if exitCondition><#break></#if>
  ...
</#list>

您可以使用带递归的 macro

<#macro doStuff>
  <#if myVariable?? >
    // do stuff
    <@doStuff/>
  </#if>
</#macro>

<@doStuff/>