Grails - тестирование первого элемента в наборе с использованием gsp каждому - PullRequest
3 голосов
/ 28 октября 2009

Кто-нибудь знает, как проверить первый член и последний член в цикле gsp?

Вот мой код JSP:

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

Я знаю, что вы можете проверить статус в g: каждой инструкции, но это всего лишь целое число. Есть ли что-нибудь для доступа к первому и последнему элементу? Если нет, есть ли другой способ сделать то, что я делаю?

Любая помощь приветствуется.

Ответы [ 2 ]

7 голосов
/ 28 октября 2009

Я не уверен, в чем проблема с <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 голосов
/ 09 июля 2014

Этот вопрос устарел, но другой способ выполнить эту проверку - использовать метод 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>
...