Построить карту динамически в шаблоне скорости
Я пытаюсь обновить различные карты, передавая их имя динамически через функции. Возможно ли достичь? Потому что я столкнулся с некоторой проблемой в коде ниже. Но я ссылался на эту ссылку, чтобы динамически создавать имена переменных по скорости, и там говорится, что мы можем динамически создавать имена переменных. Поэтому я уверен, что для этой динамически создаваемой карты также возможны некоторые операции размещения. Есть ли способ?
.vm
#set($sampleArray = [])
#set($Map1 = {})
#set($Map2 = {})
#sampleTest( 'adsdasd' 'q1' 'Map1')
#sampleTest( 'dsadsad' 'ans1' 'Map1')
#sampleTest('fgbfd' 'q2' 'Map1')
#sampleTest( 'fdmieS' 'ans2' 'Map1')
#sampleTest('hhhfs' 'q4' 'Map2')
#sampleTest( 'sdfq' 'ans4' 'Map2')
#macro( sampleTest $Str1 $expectedString $MapStr)
#set ($d = '$')
#set ($varName = "${d}$MapStr") -- setting dynamic name of map
$varName.put($expectedString, $Str1)
#if ($varName.size()%2 == 0 )
$sampleArray.add($varName) -- adding maps to array after every size of map is 2
#set($varName = {}) -- emptying map after map size is 2
#end
#end
$sampleArray
$Map1
$Map2
Фактический вывод
[]
{}
{}
Ожидаемый результат
[{q1=adsdasd, ans1=dsadsad},{q2=fgbfd, ans2=fdmieS},{q4=hhhfs, ans4=sdfq}]
{q2=fgbfd, ans2=fdmieS}
{q4=hhhfs, ans4=sdfq}