2016-12-20 1 views
1

중첩 루프의 JSTL에서 두 개의 종속 ArrayList에 액세스해야합니다. 먼저 String 유형 ArrayList를 반복 한 다음 루프의 값을 사용하여 다른 ArrayList에 액세스합니다. 여기에 첫 번째 foreach 루프에서JSTL 루프에서 JSTL 변수 사용

<c:forEach items="${productCatagoryList}" var="category"> 
    <c:forEach items=${${category}} var="item"> 
     ${item.productName} 
    </c:forEach> 
</c:forEach> 

나는 문자열 값으로 카테고리를 얻을 수 있습니다 및 모든 범주의 일부 제품을 포함하는 다른 ArrayList에있다.

첫 번째 루프의 각 문자열 값은 두 번째 foreach 루프에 사용됩니다.

코드의 두 번째 줄은 오류를 발생시킵니다. 두 번째 루프 ans 항목에서 첫 번째 루프의 결과를 사용하는 방법?

+0

에 대한 게터을 사용할 수 있습니다 어떻게 사이의 관계입니다 첫 번째'foreach' 루프와 두 번째'foreach' 루프에 대한'category' 값은? 당신은 이것에 대한 모범을 보여줄 수 있습니까? – VPK

답변

1

매개 변수 category을 사용하여 같은 클래스에 메서드를 만들 수 있습니다. 문자열 유형이어야합니다. 그런 다음이 메소드를 EL에서 호출 할 수 있습니다. 최신 EL을 사용하면 사용자 지정 함수 대신 사용할 수있는 메서드를 호출 할 수 있습니다.

<c:forEach items="${productCategoryList}" var="category"> 
    <c:forEach items=${getProductsForCategory(category)} var="item"> 
     ${item.productName} 
    </c:forEach> 
</c:forEach> 

Map<String, List<Product>> productCategory; 

같은 제품 카테고리를 매핑하는 경우 다음 당신은 단순히이 변수

<c:forEach items="${productCategoryList}" var="category"> 
    <c:forEach items=${productCategory[category]} var="item"> 
     ${item.productName} 
    </c:forEach> 
</c:forEach> 

+0

고맙습니다. 작동합니다. 고맙습니다. –