본문 바로가기

Web Programming

JSTL : 반복문 <c:forEach> <c:forTokens> 태그

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
<c:forEach>

반복문.. 루프죠.. 가장 유용한 태그중의 하나라고 하는데요.. 그게 바로 forEach 태그 입니다. 얘는 for문하고 똑같은데요.. 일단 한번 예제를 보시겠습니다.

<body>
   <c:forEach var="i" items="${members}" begin="0" varStatus="status" end="5">
       index : ${status.index} /
       count : ${status.count} <br>
       name : ${i.name} <br>
       email : ${i.email} <br>
       <hr>
   </c:forEach>
</body>

자.. 얘 같은경우에는 속성값이 꽤나 많습니다. var, items, begin, varStatus, end.. 총 5개의 속성들이 보이는데 그중에 var라는 속성은 이미 알고 있는 것입니다. 여기서 i라는 변수는 반복문이 한번 수행 될때마다 바뀌는 변수가 되겠죠..? 그리고 items 라는 속성은 컬렉션 객체가 되겠군요.. 예를 들면 뭐.. 배열이라던가.. 리스트라던가 하는 것들이 오게 됩니다. 그리고 begin 이라는 건 시작 번호를 의미합니다. 몇번부터 시작하는건지 말이죠.. 그다음이 varStatus 인데 반복문의 상태를 가지는 변수라고 하는데요.. 쉽게 얘기를 하자면 forEach 문의 상태정보를 담고 있는 변수라고 생각하시면됩니다. 시작점에서 얼마나 지났는지 이런류의 정보를 담고 있죠. 그리고 마지막으로 end는 반복 끝 번호가 됩니다.

위와같은 태그를 돌리면.. 아래와 같은 결과가 나옵니다.. ^^

사용자 삽입 이미지


<c:forTokens>


요놈은 어디서 많이 봤다 했더니.. 자바를 처음 배울시절에 배웠던 API 중에 하나입니다. StringTokenizer라는 클래스를 예전에 배웠었는데.. 바로 이거군요.. 이놈의 역할은 아주 간단합니다. 특정 기호에 맞춰서 줄 끊어주기를 하는 역할입니다.

<body>
   <c:forTokens items="123-456-789" delims="-" var="sel">
       ${sel}<br>
   </c:forTokens>
</body>
여기서 items는 123-456-789 라고 했는데요 얘는 일종의 소스입니다. 그리고 중요한게 delims 라는 속성인데요. 얘는 어떤 기호가 신호가 되느냐.. 라는 일종의 약속입니다. 여기선 - 가 등장할때마다 띄어쓰기를 해달라고 요청을 했구요.. 그 결과값은 sel 이라는 변수로 지정했습니다.

사용자 삽입 이미지
이렇게 나옵니다.. 흐흐.. 별거 아니죠?