有没有人知道如何测试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语句中测试状态,但这只是一个整数。有没有东西可以访问第一个和最后一个元素?如果没有,还有另一种方法可以做我正在做的事情吗?
任何帮助表示感谢。
答案 0 :(得分: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>
答案 1 :(得分:2)
这个问题有点旧,但执行此检查的另一种方法是使用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>