不管FreeMarker如何,使用递归处理1000个元素都不是一种正常的做法(除了在一些没有常见循环构造但具有尾部递归优化的函数式语言中)。尝试使用
#list
。如果你找不到
List
或
Iterator
从该查询API(但如果可以的话,请查看),作为最后的手段,您可以执行此黑客操作(穷人的
do { ... } while (cond)
):
<#list 1..100000000 as _>
...
<#if !tmp?has_content><#break></#if>
</#list>
(足够高
incompatible_improvements
可以写入的FreeMarker配置设置
<#list 1.. as _>
,但我不知道它设置了什么。因此,我指定了一些任意高的数字,在实践中无论如何都会导致超时或内存不足。)