Есть ли встроенная функция для итеративной обработки результата строк freemarker? - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть сценарий использования, в котором я хочу рекурсивно обработать результат обработки свободного маркера.

Так что, если у меня есть переменная Map со следующими данными

var = {"a" : "${b}", "b" : "Value I want"}

и моей входной строкой is

"Input string is ${a}"

Если я обработаю это один раз, используя Template.process (var, stringWriter), я получу результат

"Input string is ${b}"

Мне нужно обработать это снова, чтобы получить

"Input string is Value I want"

Мне нужна встроенная функция, такая как Template.process (var, stringWriter), которая выполняет итеративную обработку результата. Существует ли такая функция?

Я могу рекурсивно обрабатывать себя, но я проверяю, существует ли такая функциональность.

Примечание: я отправляю свой первый вопрос, поэтому, пожалуйста, не возражайте, если я пропустил какую-то норму

1 Ответ

0 голосов
/ 27 апреля 2020

В API FreeMarker такой функциональности нет.

Похоже, вам понадобится модель данных, ключи которой a, b, et c., И значения будут TemplateScalarModel -s, где getAsString лениво создает (через new Template) и обрабатывает шаблон, используя ту же модель данных, а затем сохраняет его результат для последующего повторного использования. Вам также потребуется общий набор имен переменных, которые обрабатываются, для обнаружения циклических зависимостей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...