Как я могу повторить это в шаблоне freemarker:
Map<Foo, List<Bar>> map = new HashMap<>();
Я пробовал это, но не повезло
<#list map?keys as key> <p>${key.blah()}</p> <#list map[key] as values values> <p>${value.bar()}</p> </#list> </#list>
Вам нужно перебрать карту / хэш значения :
<#list map?values as currentList> <#list currentList as value> <p>${value.bar()}</p> </#list> </#list>
Последовательность, которая содержит все переменные (значения в парах ключ-значение) вхеш.