以速度动态构造变量名

Dmy*_*kyi 7 velocity

我想知道是否可以动态地将变量名称构造成速度.

也就是说我有6个变量进入速度模板[name1,name2,name3 .. name6]我想输出它们.所以我在寻找类似的东西:

#foreach ( $counter in [1..6] )
${name${counter}}
#end
Run Code Online (Sandbox Code Playgroud)

有可能吗?

Ser*_*riu 12

可以使用该#evaluate指令:

#evaluate ('$name1')

#set ($d = '$')
#foreach ($i in [1..6])
  #set ($varName = "${d}name${i}")
  #evaluate($varName)
#end
Run Code Online (Sandbox Code Playgroud)

  • @AamirAdnan`#set($ value =“ #evaluate($ varName)”)`或,因为您可以评估任何有效的脚本:```#set($ name1 ='a1')#set($ name2 ='b2 ')#set($ name3 ='c3')#set($ d ='$')#set($ h ='#')#foreach([1..3]中的$ i)#set($ expr =“ $ {h} set($ {d} value = $ {d} name $ {i})”))#evaluate($ expr)$!value #end``` (2认同)

Edd*_*Edd 5

您可以构造一个映射并构建键的名称以检索所需的值:

#set( $map = {"${name}1":'value1', "${name}2":'value2'} )

#foreach ( $counter in [1..6] )
    #set( $key = "${name}$counter" )
    $map.get(${key})
#end
Run Code Online (Sandbox Code Playgroud)