2013-09-26 68 views
0

我想知道是否有可能類似的數組:創建陣列和使用在for循環中

#set ($foo1 = [ 
    $title, 'some title', 
    $text, 'some text' 
] 

#set ($foo2 = [ 
    $title, 'different title', 
    $text, 'different text' 
] 

與然後通過代碼循環這樣

#foreach($i in [1..2]) 

<div id="$i"> 
    <h1>$foo$i.title<h1> 
    <p>$foo$i.text</p> 
</div> 

#end 

我似乎目的有兩個問題我找不到解決方案。我已經能夠設置一個數組,但我只使用數字索引而不是變量名稱成功。

我的第二個問題可能與Velocity只解析一次有關。即使是一個簡單的例子,如:

#set ($foo1 = "bar") 
#set ($foo2 = "bar2") 

#foreach($i in [1..2]) 
    $foo$i --- 
#end 

只會解析到$ foo1 --- $ foo2的

是否有可能做什麼,我想實現的,我如何能夠適應我的代碼。如果我必須在數組中使用數字索引,那麼我認爲更緊迫的問題是如何通過每個循環動態地更改變量。

回答

0

在找到幾個具有Velocity知識的人之後,我就能夠破解這個。

#set ($foo1 = { 
    "title": "some title", 
    "text": "some text" 
] 

#set ($foo2 = [ 
    "title" "different title", 
    "text", "different text" 
] 

#set ($foos = [$foo1, $foo2]) 

#foreach($foo in $foos) 

<div id="$velocityCount"> 
    <h1>$title<h1> 
    <p>$text</p> 
</div> 

#end