【问题标题】:Accessing FreeMarker sequence with variable as index parameter使用变量作为索引参数访问 FreeMarker 序列
【发布时间】:2014-09-21 10:44:28
【问题描述】:

我的 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} 的值来访问序列的特定元素?

【问题讨论】:

    标签: freemarker


    【解决方案1】:

    问题是索引必须是数字,但如果你打印一些东西并捕获输出(这就是你所做的),那么它将是一个字符串。您可能只想要&lt;#assign index = selectedMonth&gt;,它不会进行任何转换。 (此外,在您的示例中,您可以只写${monthsLong[selectedMonth]},但我认为该示例是一个简化。)

    (如果selectedMonth 也是一个字符串,而您无法更改它,则可以写成${monthsLong[selectedMonth?number]}。)

    【讨论】:

      猜你喜欢
      • 2023-04-10
      • 1970-01-01
      • 2021-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-14
      相关资源
      最近更新 更多