Java2008. 10. 2. 18:30
forEach는 다음과 같은 속성을 가진다.

items : forEach가 순회할 Collection 개체를 지정한다.
begin : 반복문의 시작값을 설정한다.
end : 반복문의 종료값을 설정한다.
step : 반복문의 증가값을 설정한다.
var : 반복문의 순회시 해당하는 값을 담을 변수를 설정한다.
varStatus : 변수의 상태를 담을 변수를 설정한다.
기본적으로 forEach는 begin 과 end 속성만 설정해주면 동작하며 그 외 속성은 추가적인 옵션이다. 물론 이 두 부분만 설정됬을때는 세부적인 제어가 불가능 하고 step은 기본값으로 1이 작용한다.

 <c:forEach begin="1" end="9">
  <c:out value="foreach" /><br>
 </c:forEach>



begin 속성과 end 속성을 통해 시작값과 종료값을 지정하면 자바의 for문과 마찬가지로 증가값을 지정해 줄 수 있다.

 <c:forEach begin="1" end="9" step="2">
  <c:out value="foreach" /><br>
 </c:forEach>

소스코드에 위와 같이 step을 증가해준다.




위와 같이 step속성을 지정해주면 증가값을 설정할 수 있기 때문에 반복횟수는 5회로 나타난다. 그리고 step 속성은 0보다 작을 수
없으며 0보다 작은 즉, -값으로 설정하게 되면 javax.servlet.ServletException: 'step' <= 0 과 같은 Exception이 발생하게된다. 반복문에서 콜렉션의 사이즈에서 0이 될때까지 순회하는 방식의 사용은 불가능할듯 하다.

var속성은 반복문의 시작값 + 증가값을 변수에 담아둘 수 있는 속성이다. 위 소스에 var를 추가해보면

 <c:forEach begin="1" end="9" step="2" var="x">
  <c:out value="${ x } : foreach" /><br>
 </c:forEach>




varStatus 속성은 var 속성을 통해 변수에 담은 반복문의 값의 상태를 담고있는 변수를 지정한다. 예를 들자면 step은 얼마인지. begin은 몇부터 시작해서 end는 얼마인지 하는등을 변수에 담아둘 수 있다.

 <c:forEach begin="1" end="9" step="2" var="x" varStatus="status">
  <c:out value="${ x } : foreach : ${ status.first }" /><br>
 </c:forEach>

소스에서 사용한 first는 변수가 첫값인가를 부울값으로 반환하는 속성이다.




'Java' 카테고리의 다른 글

로또번호 랜덤생성 자바소스  (0) 2009.03.17
Base64 encode & decode in Java  (0) 2009.03.17
자바 랜덤 문자열 생성  (0) 2009.03.10
스타시디키 checksum Java & C# 소스  (0) 2008.09.26
Posted by Main()