Получить индекс объекта из ArrayList с помощью JSTL - PullRequest
5 голосов
/ 24 ноября 2011

Возможно ли получить индекс "row" из массива с использованием JSTL?

<c:forEach items="${searchResults}" var="contact">
<div style="padding: 5px;">
${contact.firstName} ${contact.lastName}
<br>
${contact.primaryPhone}
</div>
</c:forEach>

Мое намерение - установить гиперссылку, содержащую идентификатор каждого элемента в каждой строке, чтобы пользователь мог щелкать и отображать всплывающее окно или другую страницу и легко извлекать только один объект из массива, не возвращаясь в базу данных и не устанавливая другую объект сеанса и т. д.

Ответы [ 2 ]

10 голосов
/ 24 ноября 2011

Использовать атрибут varStatus.

<c:forEach items="${searchResults}" var="contact" varStatus="loop">
  <div style="padding: 5px;">
  ${loop.index} - 
  ${contact.firstName} ${contact.lastName}
  <br>
  ${contact.primaryPhone}
 </div>
</c:forEach>
0 голосов
/ 24 ноября 2011

Разобрался с решением:

<c:set var="index" value="${0}"></c:set>
<c:forEach items="${searchResults}" var="contact">
<div style="padding: 5px;">
${contact.firstName} ${contact.lastName}
<br>
${contact.primaryPhone}
<br>
${index}
</div>
<c:set var="index" value="${index+1}"></c:set>
</c:forEach>

Если кто-нибудь знает более элегантный подход, я был бы рад его увидеть.

...