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 に答える