개발새발 방이일지

[JSTL] forEach 인덱스 본문

개발일지/Java

[JSTL] forEach 인덱스

방이 2020. 7. 30. 17:23

이거 자꾸 까먹고 그래서 나중에 보려고 적어둔다.

jstl의 forEach 사용법 및 인덱스 사용법.

먼저, forEach를 사용하기 전에 header 부분에 jstl을 include 해줬는지 한번 확인해주기!

1. forEach 문

<c:forEach items="${params}" var="item" varStatus="status">
</c:forEach>

사용하는 방법은 위 처럼 적어주면 된다. controller 단에서 보내준 list명을 items에 적어주고 forEach문 안에서 사용할 변수를 var에 적어준다.(마치 for문에 i=0 적듯이 var가 i의 역할!)

이러면 forEach문은 items에 들어온 list의 길이만큼 루프를 돌것이다.

이때 for문의 경우 변수[i] 이런식으로 해서 필요한 값을 인덱스로 찾을 수 있는데 forEach문은 그럼 어떻게 찾는가!

2. forEach문 인덱스 사용하기

<c:forEach items="${params}" var="item" varStatus="status">
	${params[status.index].key} <br/>
</c:forEach>

저렇게 쓰면된다. varStatus에 적어둔 status를 통해서 인덱스를 찾을 수가 있다.  저 모양을 for문으로 생각하면 params[i].key 가 되는것이다. 저런 기능 말고도 list를 뿌려주고 그 앞에 순번을 붙여야할 때도 유용하게 사용할 수 있다. 단 index는 순번이 0번 부터 시작한다.

순번이 1번부터 시작하는 옵션은 count 이다.  status.count를 alert이나 text로 보면 1번부터 출력이 된다.

forEach의 varStatus 옵션은 index, count 말고도 더 있다.

${status.current} : 현재 for문의 해당하는 번호

${status.first} : 첫 번째인지 여부

${status.last} : 마지막인지 여부

${status.begin} : for문의 시작 번호

${status.end} : for문의 끝 번호

${status.step} : for문의 증가값

그때 그때 필요한거 있으면 옵션을 잘 이용해서 forEach문을 사용하면 된다.

이 글에 나머지 옵션에 대한 추가적인 사용법을 적게될 수도 있지만 오늘은 여기까지!

 

※ 열심히 공부해 나가는 과정이며 제가 참고하기 위해 만든 스토리이기 때문에 틀린 부분이 있을 수도 있습니다. 만약 틀린 부분이 있다면 댓글 부탁드립니다.

Comments