У меня есть java.lang.Iterable (фактически, экземпляр com.google.gson.JsonArray).
Я бы хотел перечислить элементы в списке с помощью freemarker (2.3.16).
[#assign sports = controller.sports]
[#-- At this point, sports is bound to a com.google.gson.JsonArray instance. --]
[#list sports as sport]
${sport_index}
[/#list]
Я бы не хотел писать собственный bean-компонент и десериализатор Gson только для того, чтобы иметь явную коллекцию элементов.Использование Gson (который уже десериализует строку JSON в JsonObject для меня) для создания собственной группы DAG из этого JsonObject кажется мне расточительным.
К сожалению, я не смог найти способ заставить Freemarker обрабатывать java.lang.Iterable как список.Я получаю:
freemarker.template.TemplateException : Expected collection or sequence.
controller.sports evaluated instead to freemarker.ext.beans.XMLStringModel on line 8, column 16 in sports.html.
freemarker.core.TemplateObject.invalidTypeException(line:135)
freemarker.core.IteratorBlock$Context.runLoop(line:190)
freemarker.core.Environment.visit(line:417)
freemarker.core.IteratorBlock.accept(line:102)
freemarker.core.Environment.visit(line:210)