2014-12-30 71 views
0

我正在研究<g:each>。我得到了一個array with size = 6。我想創建一個每個tr有4個td的表。 例如:我做循環數組with size = 6Groovy 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> 
+1

groovys'collat​​e'呢? – cfrick

回答

5

您可以使用g:eachstatus後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> 
3

雖然用戶@ 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驗證錯誤。

+0

感謝您的解決方案。我真的很感激它,順便說一句。 –

相關問題