52

次のコードで何とかできましたが、もっと簡単な方法があるはずです。

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>


<c:if test="${fn:length(attachments) > 0}">
    <c:forEach var="attachment" items="${attachments}" varStatus="loopCount">
        <c:if test="${loopCount.count eq 1}">
         attachment.id
        </c:if>
    </c:forEach>
</c:if>
4

10 に答える 10

38

セットには順序はありませんが、それでも最初の要素を取得したい場合は、次を使用できます。

<c:forEach var="attachment" items="${attachments}" end="0">
     <c:out value="${attachment.id} />
</c:forEach>
于 2011-05-26T21:53:23.547 に答える
9

セットではなく、配列とリストに対してのみ機能します。

于 2009-08-18T16:28:53.580 に答える
3

statusVar変数の説明については、こちらを参照してください。「ステータス」変数に反復の現在のステータスが含まれている場合、以下のようなことができます。これは、最初と最後の繰り返しに特別な注釈が必要な場合に非常に便利です。以下の場合、最後のタグの後ろのカンマを省略したいと思います。もちろん、最初の繰り返しで何か特別なことstatus.lastをするために置き換えることができます:status.first

<td>
    <c:forEach var="tag" items="${idea.tags}" varStatus="status">
        <span>${tag.name not status.last ? ', ' : ''}</span>
    </c:forEach>
</td>

可能なオプションは次のとおりですcurrent, index, count, first, last, begin, step,end

于 2011-12-11T15:45:25.207 に答える
0

${mySet.toArray[0]} を使用しても機能しません。

forEach ループを少なくとも 1 回反復しないと、それが可能だとは思いません。

于 2009-10-07T11:33:49.393 に答える