728x90
프로젝트를 진행 중에 한 리스트에서 연속된 두 VO를 사용해야 하는데
어떻게 할 수 있을까 고민하다가 생각난 것을 적용해보니 잘 되길래 공유해봅니다.
JSTL core의 foreach 태그에는 여러 속성이 있지만 주로 사용하는 방법은 아래와 같습니다.
<c:foreach var="vo" items="${List}">
<div> ${vo.title} </div>
</c:foreach>
이렇게 되면 items에 있는 변수가 인덱스 순으로 vo에 담겨서 진행하게 되는데 여기에 속성 몇 개를 추가하면 됩니다.
<c:foreach var="vo" items="${List}" varStatus="status" step="2">
<div> ${vo.title} </div>
<div> ${List[status.index + 1].title} </div>
</c:foreach>
varStatus 속성으로 설정한 status로 현재 반복문의 인덱스를 받아올 수 있습니다.
step 속성으로는 반복문을 첫 번째 항목부터 시작하여 스텝마다 진행한다는 뜻입니다.
이를 활용하면 세 개씩도 한 반목문 안에 사용할 수 있습니다.
예를 들어 아래와 같이 10까지의 숫자가 들어있는 리스트가 있다고 했을 때
String[] list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
아래의 코드를 사용하면 1, 3, 5 ,7, 9만 출력합니다.
<c:foreach var="num" items="${list}" varStatus="status" step="2">
<div> ${num} </div>
</c:foreach>
여기서 step 속성만 3으로 바꾸면 1, 4, 7, 10이 출력됩니다.
728x90
'Java' 카테고리의 다른 글
Bootstrap5 modal 버튼없이 다루기 (0) | 2022.08.02 |
---|---|
spring scheduler 이용해서 매시각 메서드 실행하기 (0) | 2022.08.02 |
네이버 로그인 API 구현 java/spring (1) | 2022.07.11 |
spring DI, AOP (0) | 2022.06.14 |
Spring의 특징 POJO/ DI/ IoC (0) | 2022.06.13 |