⚡ forEach- 원시배열 attribute 사용하지 않을시 jsp문법 <%= 변수%> 으로 사용!
item 속성 모든 배열 값을 처리할 때 사용하는 속성값 배열에만 사용!
begin, end (사용해도되고 안해도됨) begin : 시작값 end : 종료값
<!-- 원시배열 -->
<%
String data[] = new String[]{"hong","kim","park"};
String data2[] = new String[]{"1","2","3"};
request.setAttribute("data2",data2);
%>
<ol><!-- jsp변수를 items 속성에서 받은 후 var로 출력 --><cr:forEachvar="dt"items="<%=data%>"><li>${dt}</li></cr:forEach></ol><ol><!-- jsp변수를 items 속성에서 받은 후 var로 출력 --><cr:forEachvar="dt2"items="<%=data%>"begin="1"end="3"><li>${dt2}</li></cr:forEach></ol><ol><!-- jsp에서 attribute로 생성된 이름을 item으로 받은후 var로 출력 --><cr:forEachvar="dt3"items="${data2}"><li>${dt3}</li></cr:forEach></ol>
<!-- 조건문 + 반목문 : data 배열값중 park이라는 사용자만 출력 --><cr:forEachvar="dt5"items="<%=data%>"><cr:iftest="${dt5 == 'park'}"><div>${dt5}</div></cr:if></cr:forEach>
⚡ forEach - Class 배열
<%
ArrayList<String> al = new ArrayList<String>();
al.add("테스트1");
al.add("테스트2");
al.add("테스트3");
al.add("테스트4");
%>
<ul><cr:forEachvar="dt4"items="<%=al %>"><li>${dt4}</li></cr:forEach> //배열값 순서대로 출력
</ul>
⚡ varStatus , class 1차,2차배열 배열번호 순서 갯수..등 핸들링 가능한 속성값 index : 배열노드번호 first : true(첫번째 데이터) , false(그 외의 데이터) <=> last : 반대 count : 데이터 +1씩 카운팅 (+2 는 n.count+2)
✅ 1차배열
<%
ArrayList<String> al = new ArrayList<String>();
al.add("홍길동1");
al.add("홍길동2");
al.add("홍길동3");
al.add("홍길동4");
al.add("홍길동5");
%>
<cr:forEachvar="z"items="<%=al %>"varStatus="n">
데이터 기준 : ${n.last}, 번호 : ${n.index}, 데이터값 : ${z},
데이터 카운팅: ${n.count}
<br></cr:forEach>
<!-- 각각의 그룹 배열에 특정 값만 출력하는 형태 --><cr:forEachvar="a2"items="<%=al2%>"><!-- 알아서 두개다 찍음 -->
${a2.get(1)}
</cr:forEach><br><br><!-- 2차배열의 각각 데이터를 출력하는 방식 --><cr:setvar="bb"value="<%=al2.get(1)%>"></cr:set><cr:forEachvar="aa"items="<%=al2.get(0)%>"varStatus="n"><!-- 5바퀴 -->
고객명 : ${aa} , type : ${bb.get(n.index)}<br></cr:forEach>