【问题标题】:How to use freemarker list with hashmap variable如何使用带有 hashmap 变量的 freemarker 列表
【发布时间】:2016-04-26 15:30:15
【问题描述】:

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

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

【问题讨论】:

    标签: freemarker


    【解决方案1】:

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

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

    【讨论】:

    • 顺便说一句,"STD-TIME_Environmental_${x}" 也可以工作,只有 ${x} 必须在字符串(不再是)文字内,这与 OP 的尝试不同。
    猜你喜欢
    • 1970-01-01
    • 2014-05-08
    • 2021-08-06
    • 2020-07-16
    • 1970-01-01
    • 2016-06-07
    • 2021-10-26
    • 1970-01-01
    • 2019-10-30
    相关资源
    最近更新 更多