使用循环访问Freemarker根对象

时间:2018-06-11 16:08:58

标签: java freemarker

使用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 :(得分:0)

假设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 bean的数据模型。就FreeMarker而言,这意味着它的意义。