我的FreeMarker模板包含如下定义的序列:
<#assign monthsLong = ["Nope", "Januar", "Februar", "März", "April",
"Mai", "Juni", "Juli", "August", "September",
"Oktober", "November", "Dezember"]>
如何使用变量作为索引访问monthsLong
的单个项目?直接使用数字或使用变量作为索引参数按预期工作:
<#assign i=1> ${monthsLong[i]}
${monthsLong[1]}
但我无法使用我的模型中的变量而不会出现异常:
<#assign index>${selectedMonth}</#assign>
${monthsLong[index]}
如何使用${selectedMonth}
的值来访问序列中的特定元素?
答案 0 :(得分:2)
问题是索引必须是数字,但是如果你打印一些东西并捕获输出(你做了什么),那么它将是一个字符串。您可能只是想要<#assign index = selectedMonth>
,它不进行任何转换。 (此外,在您的示例中,您可以只编写${monthsLong[selectedMonth]}
,但我认为该示例是一种简化。)
(如果selectedMonth
也是一个字符串,那么你无法改变,你可以写${monthsLong[selectedMonth?number]}
。)