Вероятно, хотя это зависит от того, в какой структуре находятся данные на земле Java. Freemarker обрабатывает основные операции над коллекциями (хэши, последовательности). Если у вас есть карта в Java, Freemarker позволит вам использовать ее как «хэш» (вы можете получить ее ключи напрямую), а списки в Java выглядят как «последовательности» во Freemaker.
Если бы вы имели, скажем, в Java, List<List<String>>
, представляющий список таблиц, то вы могли бы просматривать их в FTL как:
<#-- getMyTables() is a call into the primary template model object -->
<#assign myTables = getMyTables() />
<#list myTables as table>
<#list table as column>
${column}
</#list>
</#list>
Если ваши коллекции представляют собой пользовательские классы, которые не реализуют интерфейсы List или Map, то вы, конечно, можете просто напрямую обращаться к их методам (Freemarker поддерживает прямой доступ к методам в своей модели шаблона и ко всему, что вы можете получить из шаблона модель). Э.Г.
<#-- getMyTablesAsList() is a call into the primary template model object -->
<#assign myTables = getMyTablesAsList() />
<#list myTables as table>
<#list table.getColumnNames() as column>
${column}
</#list>
</#list>