Вы можете использовать оператор диапазона [n..m]
в цикле foreach для эмуляции нормального цикла.Вы также можете получить доступ к элементам многомерного массива обычным способом, например $array[n][m]
.
Например, если у вас есть такой массив 2d (извините за код Java):
String[][] testArray = new String[][] {{"a1","b1"},{"a2","b2"},{"a3","b3"}};
Вы можете выполнить циклв Velocity это выглядит так:
#set($sizeX = $testArray.size() - 1)
#set($sizeY = $testArray[0].size() - 1)
#foreach($i in [0..$sizeX])
#foreach($j in [0..$sizeY])
e[$i][$j] = $testArray[$i][$j] <br/>
#end
#end
Какие выходные данные:
e[0][0] = a1
e[0][1] = b1
e[1][0] = a2
e[1][1] = b2
e[2][0] = a3
e[2][1] = b3
UPDATE :
Синтаксис в квадратных скобках был введен только в Velocity 1.7b1 согласно журналу изменений.В более старых версиях нам просто нужно было заменить скобки на get(i)
, так как массивы в Velocity поддерживаются ArrayList
(в Java).Итак, это должно работать:
#set($sizeX = $testArray.size() - 1)
#set($sizeY = $testArray.get(0).size() - 1)
#foreach($i in [0..$sizeX])
#foreach($j in [0..$sizeY])
e[$i][$j] = $testArray.get($i).get($j) <br/>
#end
#end