在我的一个 FreeMarker 模板中,我有一对看起来像这样的宏
<#macro RepeatTwice><#nested 1><#nested 2></#macro>
<#macro Destinations>
<#assign DestinationList = []>
<@RepeatTwice ; Index>
<#assign City == some XPath expression dependant on the index>
<#if City == something>
<#assign DestinationList = DestinationList + ["some string"]>
<#elseif City == something else>
<#assign DestinationList = DestinationList + ["some string"]>
</#if>
</@>
</#macro>
所以现在,我的目的地列表包含 2 个值。这适用于如果我插入${DestinationList[0]}
或${DestinationList[1]}
在</#macro>
我得到预期的输出之前。
我的问题是 --- 在一个单独的模板中,我想从这个宏中捕获整个列表,以便我可以在需要时访问它的元素。
为此,我需要宏来返回整个列表,而不仅仅是其中的一个元素。
但是插入${DestinationList}
或仅插入 DestinationList 会返回错误。
我试过做类似${DestinationList[0,1]}
的事情,但似乎没有任何效果。
这可能吗?
谢谢,
罗勒