1. forEach


for문과 동일한 기능을 구사한다.

c:forEach var="index" begin="시작" end="종료" step="증가"

 

사용방법1)

- 1 2 3 연속되게 출력하기

  <c:forEach var="i" begin="1" end="3" step="1">

  ${i }

  </c:forEach>

 

사용방법2)

- 같은 jsp페이지 안에서 String배열 출력하기

<%String[] movieList={"코코", "알라딘", "라이온킹", "뮬란", "겨울왕국", "frozen2"};

          pageContext.setAttribute("movieList", movieList);

  %>

  <c:forEach var="movie" items="${movieList }">

  ${movie }

  </c:forEach>

 

▶ 향상된 for문과 비슷한 느낌을 가지고 있다.

 

사용방법3)

- ArrayList 출력하기

출력할 table

 

 

<%

  ArrayList<String> movieList2 = new ArrayList<>();

  movieList2.add(new String("잘했어"));

  movieList2.add(new String("금요일"));

  movieList2.add(new String("감기꺼져"));

  movieList2.add(new String("제발"));

 

  pageContext.setAttribute("list", movieList2);

  %>

 

  <h4>ArrayList로 뽑기</h4>

  <table class="table table-striped">

  <caption>ARRAYLIST 뽑기</caption>

  <thead>

  <tr>

  <th scope="col">index</th>

  <th scope="col">count</th>

  <th scope="col">영화이름 대기</th>

  </tr>

  </thead>

  <tbody>

    <c:forEach var="list" items="${list }" varStatus="status">

    <tr>

          <td>${status.index }</td>

          <td>${status.count }</td>

          <td> ${list }</td>

    </tr>

  </c:forEach>

 

index: 처음 시작값을 가진다. (=begin값)

count: 1부터 시작하고, 1씩 증가하는 값을 가진다.

varStatus는 선언한 var의 상태를 확인할 수 있다. 

 

status.index

stauts.count

status.first

status.last

status.end

status.begin

 

변수 선언 및 매칭형태

위 사진에서 tr태그에 style이 들어가 있는데, 이건 좋지 않은 표현방식이다.

다만 현재 CSS를 주로 배우지 않아서 일시적으로 글자색을 경우에 따라 바꾸기 위해 사용하였다.

(choose문 연습을 위한)

 

 

<c:forEach var="cnt"  varStatus="status" begin="7" end="10" step="1">

    <tr>

          <td>${status.index}</td>

          <td>${status.count }</td>

          <td> ${cnt }</td>

    </tr>

</c:forEach>

▶여기에서 index의 시작값은 begin값인 7이다

▶count는 동일하게 1부터 시작하고 1씩 증가한다.

 

forEach에서, step은 0이하(<=0)의 값을 가질 수 없고, 정수만을 사용할 수 있다. (실수X)

따라서, 5, 4, 3, 2, 1 같은 반복문은 varStatus를 잘 활용할 수 있다.

 

사용방법)

-c:set은 사용하지 않아도 되는데 까먹을까봐 따로 변수 선언을 해보았다..ㅎㅎ

+ Recent posts