Цикл двух массивов одинакового размера отображается на столе Groovy - PullRequest
2 голосов
/ 10 сентября 2011

Я пытаюсь зациклить два массива одинакового размера в одной строке таблицы

<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>   

Ответы [ 2 ]

4 голосов
/ 10 сентября 2011

Не уверен, сработает ли это (или я полностью понимаю ваш вопрос), но вы можете попробовать:

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

Метод transpose() выполняет следующие действия:

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

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

напечатает:

[[hammer, 1], [chisel, 2], [crowbar, 5]]
3 голосов
/ 10 сентября 2011

другим способом является использование статуса:

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

... но метод transpose () кажется мне чище: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...