2011-09-10 9 views
2

私はループ2つの配列のGroovy

<g:each in="${productList}" var="p"> 
    <td>${p}</td> 
</g:each> 
<g:each in="${cartList}" status="i" var="c">     
    <td>${fieldValue(bean: c, field: "quantity")}</td> 
</g:each> 

答えて

3

を別の方法でステータスを使用することです:

<g:each in="${cartList}" status="i" var="c">     
    <td>${productList[i]}</td> 
    <td>${fieldValue(bean: c, field: "quantity")}</td> 
</g:each> 

...しかし、転置()メソッドは、あなたの道はない:-)

+1

クリーナー私には思えます大量のカートがボーナスになるかもしれない新しいListオブジェクトを導入する:-) –

4

ない、これは仕事(またはIの場合になるかどうかわから表にループに同じ行の同じサイズ表示の2つの配列をしようとしています完全に)あなたの質問を理解し、しかし、あなたは試みることができる:

<g:each var="prodcart" in="${[productList,cartList].transpose()}"> 
    <td>${prodcart[0]}</td> 
    <td>${fieldValue(bean:prodcart[1], field:'quantity')}</td> 
</g:each> 

transpose() methodん以下:

products = [ 'hammer', 'chisel', 'crowbar' ] 
quantity = [ 1,  2,  5   ] 

println([products,quantity].transpose()) 

は印刷されます:

[[hammer, 1], [chisel, 2], [crowbar, 5]] 
関連する問題