Jstlを使用してリストを処理しようとしています。リストの最初の要素を他の要素とは異なる方法で扱いたい。つまり、最初の要素のみを表示するように設定し、残りは非表示にする必要があります。
私が膨らんでいるように見え、機能しません。
助けてくれてありがとう。
<c:forEach items="${learningEntry.samples}" var="sample">
<!-- only the first element in the set is visible: -->
<c:if test="${learningEntry.samples[0] == sample}">
<table class="sampleEntry">
</c:if>
<c:if test="${learningEntry.samples[0] != sample}">
<table class="sampleEntry" style="display:hidden">
</c:if>
<c:if>
なしで、さらに短くできます。
<c:forEach items="${learningEntry.samples}" var="sample" varStatus = "status">
<table class="sampleEntry" ${status.first ? '' : 'style = "display:none"'}>
</c:forEach>
はい、forStatus要素でvarStatus = "stat"を宣言して、最初か最後かを尋ねることができます。 LoopTagStatus型の変数です。
これはLoopTagStatusのドキュメントです: http://Java.Sun.com/products/jsp/jstl/1.1/docs/api/javax/servlet/jsp/jstl/core/LoopTagStatus.html Itより興味深いプロパティがあります...
<c:forEach items="${learningEntry.samples}" var="sample" varStatus="stat">
<!-- only the first element in the set is visible: -->
<c:if test="${stat.first}">
<table class="sampleEntry">
</c:if>
<c:if test="${!stat.first}">
<table class="sampleEntry" style="display:none">
</c:if>
編集:axtavtからコピー
<c:if>
なしで、さらに短くできます。
<c:forEach items="${learningEntry.samples}" var="sample" varStatus = "status">
<table class="sampleEntry" ${status.first ? '' : 'style = "display:none"'}>
</c:forEach>