代码之家  ›  专栏  ›  技术社区  ›  Matt

Grails-使用GSP测试集合中的第一个元素

  •  3
  • Matt  · 技术社区  · 16 年前

    有人知道如何测试GSP循环中的第一个成员和最后一个成员吗?

    这是我的JSP代码:

    <c:forEach items='${aSet}' var='elem' varStatus="loop">
       <c:if test='${loop.first}'>
          <p>Display something</p>
       </c:if>
    </c:forEach>
    

    我知道您可以在g:each语句中测试状态,但这只是一个整数。有什么可以访问第一个和最后一个元素吗?如果没有,还有别的方法来做我正在做的事情吗?

    感谢您的帮助。

    2 回复  |  直到 11 年前
        1
  •  7
  •   Daniel Rinser    16 年前

    我不知道有什么问题 <g:each status> 是。是的,它只是一个整数,但这不是你想要的吗?

    <g:each in="${aSet}" var="elem" status="i">
        <g:if test="${i == 0}">
            <p>Display something for first element</p>
        </g:if>
        <p>Stuff that is always displayed</p>
        <g:if test="${i == aSet.size() - 1}">
            <p>Display something for last element</p>
        </g:if>
    </g:each>
    
        2
  •  2
  •   dspies    11 年前

    这个问题有点老,但是执行这个检查的另一种方法是使用groovy list的first()方法。还可以使用groovy list的last()方法对最后一个元素执行相同的操作。

    清单()

    <g:forEach items='${aSet}' var='elem' varStatus="loop">
       <g:if test='${elem == aSet.first()}'>
          <p>Display something for first element</p>
       </g:if>
    </g:forEach>
    

    列表()

    <g:forEach items='${aSet}' var='elem' varStatus="loop">
       <g:if test='${elem == aSet.last()}'>
          <p>Display something for last element</p>
       </g:if>
    </g:forEach>
    
    推荐文章