FE/JSP & JSTL

[JSTL] <c:forEach> 사용방법

멍목 2021. 3. 10. 23:31
반응형

안녕하세요.

 

jsp에서 반복문이 필요할 때 JSTL을 이용할 수 있습니다.

 

이번 포스팅에서는 이 JSTL의 반복문이라고 볼 수 있는 c:forEach 사용방법을 알아보겠습니다.

 


1. JSTL Core 선언

JSTL을 사용하기 위해선, 해당 JSP 페이지 상단에 아래 선언을 해야합니다.

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

 

2. <c:forEach> </c:forEach> 기본 구조 확인하기

아래 소스코드는 c:forEach 기본 구조입니다.

<c:forEach var="item" items="${list}" begin=0 end=10 varStatus="vs">
	...
</c:forEach>


/** c:forEach 속성 설명 **/ 
// var : 사용할 변수 명 <필수>
// items : Collection 객체(List, Map) <필수>
// begin : 반복 시작 index(기본 값 0)
// end : 반복 종료
// step : 반복 시, 증가 폭
// varStatus : 반복문 돌고 있을 때, 해당 상태를 보여주는 변수

/** varStatus 변수의 속성 설명 **/
// index : items에 정의한 항목을 가르키는 index. (기본값 0)
// count : 현재 몇 번째 반복인지 반환 (1부터 시작)
// first : 현재 반복이 첫 번째 반복인지 (boolean형식의 true or false 반환)
// last : 현재 반복이 마지막 반복인지 (boolean형식의 true or false 반환)

 

3. <c:forEach> </c:forEach> 구조를 이용한 SELECTBOX 옵션 채우기

3-1. sampleDto.java

package Sample.dto;
 
public class SampleDto {
 
    private String[] sampleList = {"option1", "option2", "option3"};
    
    public String[] getProductList() {
        return sampleList;
    }
}

 

3-2. c:forEach를 이용해 SELECTBOX 옵션 채우기

<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page import="Sample.dto.SampleDto"%>	<!-- 3.1의 Dto를 이 JSP에서 사용할 수 있도록 import -->
<%
	SampleDto sampleDto = new SampleDto();
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
    <title>c:foreach_selectBox_sample</title>
  </head>
  <body>
      <select name="select1">
      <c:forEach var="item" items="<%= sampleDto.getSampleList() %> " >
          <option>${item}</option>
      </c:forEach>
      </select>
  </body>
</html>

3-3 결과

 

반응형