在jsp頁面要實現這樣一個功能,列表的某一列字段要顯示的數據,是從后台的一個列表中獲取的,數據庫里面該列存儲的方式是 類似 1,2,3 這樣的 主鍵id數據。顯示的時候要根據id顯示名稱,如果是多個 則要逗號分隔這種。
第一次是這樣實現的:
<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有關。 只要包含他的一個子集就會全部顯示。
然后想了想,似乎也沒有好的處理方法。又重新在后台處理了下,將逗號分隔的值放在了一個list里面,之后再jsp里面進行兩個foreach 進行判斷。這樣就好了
<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>