GitHub

https://github.com/Backcoder-June

BackCoder 기록 그리고 숙달

Back to the JSP

[JSTL] 반복문 <c: forEach items var varStatus />

Backcoder 2022. 8. 13. 18:54

[[ JSTL 반복문 ]] 
: forEach 

- 배열 / Array / Map 다 사용 


<% String[ ] color = {"red", "black", "white", "green", "gray"}; %>

[ 기본 반복문 ]

 

<c:forEach  items = "<%=color%>"   var= "eachcolor" >
반복문 결과  : ${eachcolor}  < br >
</c:forEach>

- items : 뽑을 배열 / List / Map 
- var : 하나씩 담는 변수 



[ varStatus 기능 제공 ]

 

[ count / inedex ] 

<c:forEach items="<%=color%>"  var="eachcolor"  varStatus="vs" >
${ vs.count } 번째 색 : ${eachcolor} <br>
</c:forEach>

 

vs : varStatus 호출할 때 사용할 이름 아무거나 
index : 0부터 번호 주기
count : 1부터 번호 주기    

 


[ current ] 
<c:forEach items="<%=color%>"  var="eachcolor"   varStatus="vs">
     반복중일때 데이터 값 : ${ vs.current } <br>
</c:forEach>

 

current : 반복문 돌리면서 나오는 현재 결과 값

 => 변수 따로 선언 안하고, 그냥 바로 뽑으려면 사용 

 

 

[ first / last ]

: 첫번째 / 마지막 값 


<c:forEach items="<%=color%>" var="eachcolor" varStatus="vs">

    <c:if test="${ vs.first }">
        첫번째 색 : ${eachcolor} <br>
    </c:if>

 

    <c:if test="${ vs.last }">
        마지막 색 : ${eachcolor} <br>
    </c:if>


</c:forEach>

 { vs.first /last }자체만으로,   

" 돌려서 나온 데이터값이 first / last 번째 값이다 " 라는 의미를 내포하고 있어서 

그냥 저렇게 자체만 써주면 되는듯 하다. 

 

 

 

[ begin / end  / step ] 

: 몇 번째 부터, 몇  번째 까지, 몇 개 간격으로  ( index 기준 )

 

<c:forEach items =" "  > 

: items 있는동안 전체 뽑기 

<c:forEach items="<%=color%>" begin="2" end="10" step="1" var="eachcolor"> 

부분 골라서 뽑기 ${eachcolor} 
</c:forEach>

: begin 부터 시작해서 end 번째 까지 (index) step 1 개씩 var 에 담기 

--------------------------------------------------------------------------------------------

[ 배열 / ArrayList ]

: 똑같이 forEach  로 뽑으면 됨 

[ Map ]

(1) forEach 
key=value   형태로 뽑아줌 

 

(2) key / value 따로 뽑기

: ${뽑는용변수.key}  / ${뽑는용변수.value}  로 뽑아주면 됨 

 

<c:forEach items="<%=dtomap%>" varStatus="vs">
    ${ vs.current.key }  ====>  ${ vs.current.value } <br>
</c:forEach>

 

[ 객체 넣은 List / Map ] 

: 마찬가지로 forEach로 뽑는다.

=> ( toString 으로 뽑힘 )