在jsp頁面要實現這樣一個功能,列表的某一列字段要顯示的數據,是從後臺的一個列表中獲取的,數據庫裏面該列存儲的方式是 相似 1,2,3 這樣的 主鍵id數據。顯示的時候要根據id顯示名稱,若是是多個 則要逗號分隔這種。數據庫
第一次是這樣實現的:jsp
<c:forEach var="cooperation" items="${cooperationTypeList}"> <c:if test="${fn:contains(entity.cooperationId,cooperation.id)}"> ${cooperation.cooperationName} </c:if> </c:forEach>
然而這樣有個問題,好比我恰好list的值裏面有一個是 15,而數據庫裏面存儲了 1,5,那麼就會顯示 兩個 。 這個應該是和contains有關。 只要包含他的一個子集就會所有顯示。oop
而後想了想,彷佛也沒有好的處理方法。又從新在後臺處理了下,將逗號分隔的值放在了一個list裏面,以後再jsp裏面進行兩個foreach 進行判斷。這樣就行了spa
<c:forEach var="cooperation" items="${cooperationTypeList}"> <c:forEach var="listCooperation" items="${entity.listCooperationId}"> <c:if test="${cooperation.id==listCooperation}"> ${cooperation.cooperationName} </c:if> </c:forEach> </c:forEach>