3

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

这是我的jsp代码:

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

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

任何帮助表示赞赏。

4

2 回答 2

7

我不确定问题出在哪里<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>
于 2009-10-28T12:29:30.037 回答
2

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

list.first()

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

list.last()

<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>
于 2014-07-08T20:43:59.673 回答