2010-11-10 26 views

Trả lời

26

Bạn có thể gọi varStatus.index để có được những chỉ số của vòng lặp hiện tại của, và sau đó sử dụng nó như một tra cứu cho danh sách thứ hai.

Ví dụ, nếu bạn có hai danh sách people.firstnamespeople.lastnames bạn có thể làm:

<c:forEach var="p" items="${people.firstnames}" varStatus="status"> 
    <tr> 
     <td>${p}</td> 
     <td>${people.lastnames[status.index]}</td> 
    </tr> 
</c:forEach> 
+0

Cách tiếp cận khá thông minh và thẳng thắn. +1 –

+0

cảm ơn. điều này làm việc. – randy

0

Tôi giả sử bạn có các bộ sưu tập mà bạn muốn lặp lại trong một lần. Thêm một getter sẽ hợp nhất hai bộ sưu tập này và sử dụng nó cho phép lặp. Ví dụ

private Collection<String> first; 
private Collection<String> second; 

public Collection<String> getBoth() 
{ 
    List<String> result = new ArrayList<String>(); 
    result.addAll(first); 
    result.addAll(second); 
    return result; 
} 

Iteration trong JSTL:

<c:forEach var="p" items="${people.both}"> 
    <tr> 
     <td>${p}</td> 
    </tr> 
</c:forEach> 
+0

sử dụng này, làm thế nào tôi có thể lặp đầu tiên và những bộ sưu tập thứ hai sử dụng JSTL foreach? thanks boris – randy

+0

Sử dụng kết quả của getBoth() ??? – ZeissS

Các vấn đề liên quan