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

时间:2016-01-20 16:54:57

标签: freemarker

在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>

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

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

期待以下之一:     &#34;]&#34; ...     &#34;&#34; ...     &#34; [&#34; ...     &#34;(&#34; ......     &#34;&#34; ...     &#34;!&#34; ...

1 个答案:

答案 0 :(得分:1)

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

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