2011-12-11 75 views
0
<c:forEach items="${listOfRoutes}" var = "route"> 
       <option value="${route.source }" >${route.source }</option> 
       </c:forEach> 

這裏listOfRoutes包含路線(ID,源,目的地)對象。 在這裏,我想只顯示不同的信號源。 如何做到這一點,plz幫助我。如何消除jsp表達式語言中的重複值?

回答

0

可以使用Set通過遍歷列表,因爲Set不列入允許複製,然後使用Set來填充選項源存儲源,請在下面的代碼看看。

<% 
Set setSource = new HashSet(); 
for(Route route:listOfRoutes){ 
setSource.add(route.getSource()); 
} 
%> 


<c:forEach items="${setSource}" var = "source"> 
<option value="${source}" >${source}</option> 
</c:forEach> 

,如果你想選擇已排序的值,那麼請使用TreeSet

+0

我的錯,有一些錯誤。更新了代碼。 –

+0

謝謝你rajkumar,它的工作。 –

+0

你是受歡迎的夥伴..如果這爲你工作,你應該將此標記爲接受的答案,而不是另一個。 –

2

首先,你必須決定什麼使一個又一個不同的路線。不同的ID?不同的ID源目標?

然後,在Route對象上實施equalshashCode。 IDE通常可以通過選擇哪些字段必須是計算的一部分來生成這些方法。

最後,使用Set<Route>來存儲路線,而不是List<Route>。如果您想保留插入順序,您可以選擇LinkedHashSet作爲實施。 Set是一個不存儲重複的集合,因此它可以滿足您的需求。

JSTL的代碼將留相同的。