Доступ к корневым объектам Freemarker с помощью цикла - PullRequest
0 голосов
/ 11 июня 2018

Использование Freemarker и Java.У меня есть записи в моей корневой карте, например:

DAY_1=2018/05/01
VOLUME_1=123456
VALUE_1=456.78
DAY_2=2018/05/02
VOLUME_2=654321
VALUE_2=876.54
...
DAY_N=2018/05/20
VOLUME_N=555555
VALUE_N=333.44

, и я хочу вывести их в виде списка через запятую, например:

2018/05/01,123456,456.78
2018/05/02,654321,876.54
...
2018/05/20,555555,333.44

Я думал, что это будет легкоитерации в моем файле шаблона FTL с использованием простого итератора цикла, задающего статическую часть ключа "DAY_" и объединяющего значение индекса из индекса цикла.

В течение нескольких часов я искал стратегию того, каксделать это и попытался много стилей кодирования FTL, но получить только ошибки.Может быть, я тоже обдумываю это.

Есть какие-нибудь предложения по простому подходу к доступу к данным этой карты?

Спасибо, Кен

1 Ответ

0 голосов
/ 11 июня 2018

Предполагая, что N по крайней мере 1 (в противном случае используйте исключительный конечный диапазон, например 1 ..< N+1):

<#list 1..N as i>
  ${.data_model['DAY_${i?c}']},${.data_model['VOLUME_${i?c}']},${.data_model['VALUE_${i?c}']}
</#list>

Или, некоторые предпочитают использовать .vars, что также проверяет переменные в текущем пространстве имен илокальные переменные и переменные цикла.

Но я бы рекомендовал использовать модель данных, содержащую List из Map -s или List Java-бинов.Вот как это должно быть, что касается FreeMarker.

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