我正在研究<g:each>
。我得到了一个array with size = 6
。我想创建一个每个tr有4个td的表。 例如:我做循环数组with size = 6
Groovy 4 td后的每个新tr
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
<tr>
<td>5</td>
<td>6</td>
</tr>
我正在研究<g:each>
。我得到了一个array with size = 6
。我想创建一个每个tr有4个td的表。 例如:我做循环数组with size = 6
Groovy 4 td后的每个新tr
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
<tr>
<td>5</td>
<td>6</td>
</tr>
您可以使用g:each
的status
后4 TD有条件地开始新的一行:
<tr>
<g:each var="it" status="i" in="${ar}">
<g:if test="${ i > 0 && i % 4 == 0 }"></tr><tr></g:if>
<td>${it}</td>
</g:each>
</tr>
虽然用户@ user2472199给出的解决方案但通过以这种方式使用Groovy的collate方法,您可以更清晰地编写它:
<g:each var="trElement" in="${ar.collate(4)}">
<tr>
<g:each var="tdElement" in="${trElement}">
<td>${tdElement}</td>
</g:each>
</tr>
</g:each>
这将保持gsp看起来干净,并避免编辑器中的任何HTML验证错误。
感谢您的解决方案。我真的很感激它,顺便说一句。 –
groovys'collate'呢? – cfrick