如何使用带有 hashmap 变量的 freemarker 列表

How to use freemarker list with hashmap variable

在 Java 中,我使用的是

HashMap<String, String>

然后可以在我的 freemarker 模板中使用。

我可以这样访问

Time:${candidFieldsList["STD-TIME_Environmental_1"]}

这将从我的地图中提取键 STD-TIME_Environmental_1 的值,效果很好。现在我需要将它与一个列表结合起来以减少冗余代码。

我的模板中有一个区域需要重复 4 次

Time:${candidFieldsList["STD-TIME_Environmental_1"]}

与其他部分的区别只是数字,所以我尝试使用列表来解决这个问题。但是没有用

<#list 1..4 as x>
Time:${candidFieldsList["STD-TIME_Environmental_"${x}]}
</#list>

它没有返回键的值,而是 returns 解析器异常或此表达式的字符串。

freemarker.core.ParseException: Encountered "$" at line 4, column 50 in template.ftl.

期待以下之一: “]” ... “。” ... “[” ... “(” ... “?” ... “!” ...

尝试使用 + 运算符连接字符串:

<#list 1..4 as x>
    Time:${candidFieldsList["STD-TIME_Environmental_" + x]}
</#list>