使用循环访问 Freemarker 根对象
Accessing Freemarker root objects with loop
使用 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 编码样式,但除了错误之外一无所获。也许我也想多了。
关于访问此地图数据的简单方法有什么建议吗?
谢谢,
肯
假设 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 而言,这就是它的本意。
使用 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 编码样式,但除了错误之外一无所获。也许我也想多了。
关于访问此地图数据的简单方法有什么建议吗?
谢谢, 肯
假设 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 而言,这就是它的本意。