Freemarker на Java - как повторить фрагмент за $ {} количество раз? - PullRequest
0 голосов
/ 21 апреля 2020

Я застрял в этом вопросе уже довольно давно и не могу найти четкого ответа на этот вопрос.

У нас есть файл шаблона, и он соответствует следующей общей схеме:

комментарии фрагмент соединения подробности подключения фрагмент входной фрагмент выходной фрагмент

Внутри каждого из этих фрагментов у нас есть значения-заполнители, которые являются причиной использования Freemarker, так как он отлично подходит для замены этих значений.

Проблема, которую я не могу выяснить:

Скажем, JSON Я анализировал данные из нескольких JSONObjects "базы данных", в таком случае я бы хотел, чтобы Freemarker повторил фрагмент сведений о соединении столько раз, сколько существует объекта «база данных» в JSON.

Я встречал очень жесткие способы повторения макросов ... все они требуют, чтобы я заранее указал, как много раз я хочу, чтобы фрагмент повторился; что я не могу ответить заранее.

tldr; Есть ли способ написать макрос, который содержит фрагмент текста, а затем позволяет мне повторять этот фрагмент разное количество раз (без указания этой суммы в файле .ftl)

Кроме того, я бы очень хотел сохранить макросы в файле .ftl, отдельно от файлов моего шаблона .ftl, поэтому не могли бы вы помочь в подходящей ситуации, чтобы я мог сказать что-то вроде:

<#import "lib/macros.ftl" as u>
...
<. u.connectionDetailsMacro -repeat ${} ./>
...