Freemarker:按索引从数组中获取元素

Freemarker: Get element from array by index

我有这个代码:

<#local slots = time_utils.get_slots(objectArray) />
<#local days = time_utils.get_short_days(objectArray) />
<#local index = 0 />
<#list days as day>
    <#list slots as slot>
        <#if time_utils.is_slot_available(objectArray[index], slot, day)> bla bla </#if>
        <#local index = index + 1 />
    </#list>
</#list>

函数:

<#function is_slot_available date slot short_date>
    <#local hour_of_date = '${date.startsAt?string["HH"]}' />    
    <#local day_of_date = '${date.startsAt?string["dd"]}' /> 
    <#if (hour_of_date == '${slot[6..7]}') && (day_of_date == '${short_date[short_date?length-5..short_date?length-4]}')>
        <#return true />    
    </#if>
    <#return false />
</#function>

当我运行这段代码时,我有错误: 执行宏时出错:is_slot_available 必需参数:未指定日期。

当我在函数调用中用 0 或 objectArray[index] 中的任何数字替换 index 时,我没有收到此错误。

那么这样做的正确方法是什么?

谢谢!

感谢@ddekany:

I guess the value of index increases until it goes out of range, or runs into an array item that stores null.


这就是问题所在。