当前位置: 首页 > 知识库问答 >
问题:

用变量作为索引参数访问FreeMarker序列

史鸿运
2023-03-14

我的FreeMarker模板包含如下定义的序列:

<#assign monthsLong = ["Nope", "Januar", "Februar", "März", "April", 
                       "Mai", "Juni", "Juli", "August", "September", 
                       "Oktober", "November", "Dezember"]>
<#assign i=1> ${monthsLong[i]}
${monthsLong[1]}
<#assign index>${selectedMonth}</#assign>
${monthsLong[index]}

如何使用${selectedMonth}的值访问序列的特定元素?

共有1个答案

司寇安宜
2023-03-14

问题是索引必须是number,但是如果您打印了一些东西并捕获了输出(这就是您所做的),那么它将是一个字符串。您可能只想要<#assign index=selectedmonth>,它不执行任何转换。(此外,在您的示例中,您可以只编写${monthslong[selectedmonte]},但我假设该示例是一个简化。)

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

 类似资料:
  • 问题内容: 基本上,我使用此方便的函数来处理数据库行(请注意PDO和/或其他内容) 使用此功能,我可以简单地执行以下操作: 假设现在我需要将所有内容串联在一起(这只是一个示例)。 我该怎么办?我当时在想像这样的东西,但是它不是很优雅: 问题答案: 你必须使用如在文档中所述: 闭包也可以从父范围继承变量。任何此类变量必须在函数头中声明。从父作用域继承变量与使用全局变量不同。全局变量存在于全局范围内,

  • 是否可以访问模板中的设置变量? 设置: 如何使用,而不在模板中重用,以避免重复的代码,尤其是在其层次结构较深的情况下?

  • 问题内容: 假设是一个仅打印出参数的程序; 如何正确传递变量中带引号的参数?我正在尝试这样做; 但是,当我通过一个变量时,引号似乎被忽略了,所以我得到了; bash是否有可能像对待我自己一样在第一个代码块中输入引号? 问题答案: 我不知道你从哪里来的,但看来它坏了。这是用bash编写的正确方法: 这会将每个参数打印在单独的行中,以使它们更易于区分(当然,包含换行符的参数会出现问题,但我们不会传递此

  • 在脚本的开头,可以使用 Selenium 变量来存储常数。另外,在数据驱动测试中(将在后面一节中讨论),Selenium 变量可用于存储从命令行,从另一个程序,或从一个文件中传递的数据。 store 命令是所有存储命令中最基础的命令,它仅仅能把一个常量存储在一个 Selenium 变量中。它包括两个参数,存储的文本值和 Selenium 变量。使用标准的变量命名约定来为变量起名,即变量名中只能包含

  • 主要内容:用数组作函数参数在C语言中,函数的参数不仅可以是整数、小数、字符等具体的数据,还可以是指向它们的 指针。用指针变量作函数参数可以将函数外部的地址传递到函数内部,使得在函数内部可以操作函数外部的数据,并且这些数据不会随着函数的结束而被销毁。 像数组、字符串、动态分配的内存等都是一系列数据的集合,没有办法通过一个参数全部传入函数内部,只能传递它们的指针,在函数内部通过指针来影响这些数据集合。 有的时候,对于整数、小数

  • 问题内容: 关闭。 这个问题需要调试细节。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow 的主题。 4年前关闭。 验证我选择的选择组合框后,我无法将其插入数据库中。Tomcat给出以下错误: java.sql.SQLException:参数索引超出范围(1>参数数量,为0)。 这是怎么引起的,我该如何解决? 问题答案: 当您在上调用任何方法时,都会收到此错误