【问题标题】:Groovy each new tr after 4 td4 td 后对每个新 tr 进行 Groovy
【发布时间】:2014-12-30 07:40:06
【问题描述】:

我正在查看<g:each>。我有一个array with size = 6。我想创建一个每个 tr 有 4 个 td 的表。 例如:我在数组with size = 6中创建循环

<tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
    <td>4</td>
</tr>
<tr>
    <td>5</td>
    <td>6</td>
</tr>

【问题讨论】:

  • groovys collate 怎么样?

标签: grails groovy each gsp


【解决方案1】:

您可以使用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>

【讨论】:

    【解决方案2】:

    虽然用户@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 验证错误。

    【讨论】:

    • 感谢您提供另一个解决方案。我真的很感激,顺便说一句。
    猜你喜欢
    • 2015-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多