2012-06-18 54 views
1

在playframework的視圖模板中這樣做的方式是什麼?我用groovy標記,因爲顯然,play模板引擎基於groovy。循環播放框架中的模板中的兩個條件?

%{ 
    for(int i=0, int j = 0; i < userdata.size(), j < user.size();i = i + 4, j++){ 
}% 
<div style="text-align: center;"> 
<h3> 
    ${foo.get(j)} 
</h3> 
</div> 

如果這是不可能的,或者只是出於好奇的緣故:

我也試過路過富作爲一個HashMap,它的鍵已經存在於用戶數據。我想是這樣的,但無濟於事:

${foo.each{ k, v -> println "${k}:${v}" }}

+1

我不是100%確定你要做什麼;目標是什麼?什麼不行? –

+0

我有一個填充爲兩個查詢結果的表。第一個列表,即'userdata'填充名稱和ID等。第二個列表,即'foo'可能小於'userdata'是一個數字列表。現在我需要在我看來顯示這兩個列表。所以,我嘗試在for循環中使用兩個條件,但玩法並不太滿意。所以我需要一種方法來在單個循環中迭代兩個列表。我無法使用userdata中的變量,因爲我的索引超出了界限。和列表沒有用,因爲我已經有一個表結構和循環。 – theTuxRacer

回答

2

因爲你所談論的時髦,我想你正在使用playframework 1.x的Playframework 2使用scala模板。

您可以循環兩個條件,就像您使用其他語言一樣。語法有點不同。

的Java:

for (int i = 0; i < 10; i++){ 
    for (int j = 0; j < 10; j++) { 
     System.out.println(String.format("i: %d, j: %d", i, j)); 
    } 
} 

playframework模板:

#{list items:0..10, as:'i'} 
    #{list items:0..10, as:'j'} 
     <p>i: ${i}, j: ${j}</p> 
    #{/list} 
#{/list} 

退房的documentation for the #{list} tag

+0

是的,我正在使用1.2.4。我在發佈之前查看了列表標籤,但我無法找到實現我想要的結果的方法。 – theTuxRacer

1

它接縫,你不能用遊戲內置的模板標籤做到這一點。此外,我還在1.2.4模板中使用for循環和多參數初始化編譯失敗。你可以使它在一個while循環中工作:

%{ 
    int j = 0, i = 0; 
    while (i*i <= j) { 
}% 
     ${i}^2 <= ${j} 
%{ 
     i++; 
     j = j+2; 
    } 
}% 
//prints 
//0^2 <= 0 
//1^2 <= 2 
//2^2 <= 4