Grails - тестирование первого элемента в наборе с использованием gsp каждому
Вопрос
Кто-нибудь знает, как проверить наличие первого и последнего члена в цикле gsp?
Вот мой код JSP:
<c:forEach items='${aSet}' var='elem' varStatus="loop">
<c:if test='${loop.first}'>
<p>Display something</p>
</c:if>
</c:forEach>
Я знаю, что вы можете проверить статус в g: каждой инструкции, но это просто целое число. Есть ли что-нибудь для доступа к первому и последнему элементу? Если нет, есть ли другой способ сделать то, что я делаю?
Любая помощь приветствуется.
Решение
Я не уверен, в чем проблема с <g:each status>
. Да, это & Quot; просто & Quot; целое число, но разве это не то, что вы хотите?
<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>
Другие советы
Этот вопрос немного устарел, но другой способ выполнить эту проверку - использовать метод first () Groovy List. Вы также можете сделать то же самое для последнего элемента, используя метод 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>
Не связан с StackOverflow