복습

JSTL 사용하기 본문

서버프로그램

JSTL 사용하기

ykm1256 2020. 6. 23. 16:09

JSTL 환경 구축

1. jstl 라이브러리 다운받기

https://mvnrepository.com/artifact/javax.servlet/jstl/1.2

 

Maven Repository: javax.servlet » jstl » 1.2

Professional Java Data: RDBMS, JDBC, SQLJ, OODBMS, JNDI, LDAP, Servlets, JSP, WAP, XML, EJBs, CMP2.0, JDO, Transactions, Performance, Scalability, Object and Data Modeling (2001)by Carl Calvert Bettis, Michael Bogovich, Sean Rhody, Mark Wilcox, Kelly Lin P

mvnrepository.com

다운 받은 후 WEB-INF/lib에 넣기

 

2. taglib 디렉티브 태그 작성

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

prefix : jstl 태그 식별 이름

uri : 태그 지원 URL

 


JSTL 사용하기

 

${param.식별자}

 : request.getParameter("식별자")로 받아온 값을 jstl에서는 위의 형태로 받아온다.

 

JSTL 태그

<c:set>

: 사용할 변수를 설정한다.

<c:set var="no" value="${param.first }"/>

 - no라는 변수를 선언하여 first라는 이름으로 받아온 값을 넣어준다.

 

<c:out>

: 출력할 때 사용

<c:out  value="${no}"/>

 - 위에서 set으로 설정한 no 변수를 출력

 

<c:choose>

: 다중 조건문을 처리할 때 사용

<c:when> : <choose>의 서브태그로 조건문이 참일 때 수행(if와 같은 역할)

<c:otherwise> : <choose>의 서브태그로 조건문이 거짓일 때 수행(else와 같은 역할)

<c:choose>	
	<c:when test="${no%2==0 }">
	짝수입니다.
	</c:when>
	<c:otherwise>
	홀수입니다.
	</c:otherwise>
</c:choose>

 => no이라는 변수가 짝수이면 '짝수입니다.', 아니면 '홀수입니다'를 출력

 

<c:if>

: 조건문을 처리한다. (java의 if와 동일하지만 else는 사용할 수 없다.)

 

<c:forEach>

: jstl에서 반복문을 처리한다.

forEach로 구구단 구현하기

<table>
<c:forEach var="a" begin="1" end="9"> 
<tr>
<c:forEach var="b" begin="1" end="9">
<td width="100"> ${a }*${b } = ${a*b } </td>
</c:forEach>
</tr>
</c:forEach>
</table>

 - begin과 end를 사용하여 시작과 끝을 설정한다.

 - 테이블의 형식에 맞게 구구단이 출력되도록 작성한다.

 

forEach문을 사용하여 배열의 요소 출력

items : forEach문에서 출력할 값을 설정

var : 출력할 데이터 변수로 지정

varStatus : 데이터 순번 매기기

varStatus.index : 순번을 매기는데 0부터 시작

varStatus.count : 순번을 매기는데 1부터 시작

<%
String[] movieList={"타이타닉", "시네마 천국", "혹성 탈출", "킹콩"};
pageContext.setAttribute("movieList",movieList);
%>

<c:forEach items="${movieList }" var="movie" varStatus="status" begin="1" end="3"> <!-- varStatus : 순서 -->
		<tr>
			<td>${status.index }</td>
			<td>${status.count }</td>
			<td>${movie }</td>
        </tr>
</c:forEach>

 - 영화 제목이 여러개 들어있는 String 타입 배열을 만든다.

 - pageContext로 jsp 페이지내에서 사용할 수 있도록 배열을 저장한다.

 - forEach문에서 movieList의 값을 출력한다.

 - 1부터 3까지 출력하므로 시네마 천국, 혹성탈출, 킹콩이 출력된다.