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

StackOverflow https://stackoverflow.com/questions/1636174

  •  06-07-2019
  •  | 
  •  

Вопрос

Кто-нибудь знает, как проверить наличие первого и последнего члена в цикле 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>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top