Programming/Servlet & JSP

JSP (4) - JSTL

코딩하는 포메라니안 2022. 3. 27. 21:10

1. JSTL(Jsp Standard Tag Library)이란?

JSP 표준 태그 라이브러리는 웹 개발을 위한 컴포넌트 모음으로, JSP페이지에서 스크립트릿을 사용하지 않고 간단하게 처리할 수 있는 방법을 제공한다.

 

 

 

 

2. JSTL core library 사용하기

JSTL은 core, XML, database등 여러 라이브러리가 존재하지만, 지금은 core library에 대해서만 알아볼 것이다.

library prefix function URI
core c 변수 지원, 흐름제어, URL처리 http://java.sun.com/jsp/jstl/core

 

 

 

1. JSTL 라이브러리 다운로드 받기

아래 사이트에서 원하는 버전을 다운받는다.

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

 

 

웹프로젝트에서 WebContent > WEB-INF > lib에 다운받은 파일을 복붙해서 넣는다.

 

 

 

 

2. JSP파일에 library 불러오기

- prefix명은 아무거나 작성 가능하지만, 보편적인 걸 쓰자(협업 시 혼란이 줄어듦)

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

 

 

 

3. 사용하기

1) 변수 설정 : set

- scope default값은 page

<c:set var="varName" value="value" [scope="page|request|session|application"]/>

 

<c:set var="name" value="홍길동"/>
<c:set var="name">김길동</c:set>
	
내이름은 ${name}입니다<br>

 

 

2) 조건문 : if

<c:set var="name" value="홍길동"/>
<c:if test="${name eq '홍길동'}">
    내 이름은 홍길동 입니다!
</c:if>

 

 

3) 다중 조건문 : choose, when, otherwise

<c:choose>
    <c:when test="${name eq '김길동'}">
        안녕하세요ㅎㅎ 김길동입니다.
    </c:when>
    <c:when test="${name eq '홍길동'}">
        안녕하십니까! 홍길동입니다!
    </c:when>
    <c:otherwise>
        김길동도 홍길동도 아닙니다.
    </c:otherwise>
</c:choose>

 

 

4) 반복문 : forEach

<%
String[] names = {"김길동", "홍길동", "제주도", "삼다수", "나는끝"};
request.setAttribute("names", names);
%>

<c:forEach var="name" items="${names}">
    ${name}<br>
</c:forEach>
<br>
<c:forEach var="name" items="${names}" varStatus="varStatus">
    ${varStatus.count}번째 이름은 ${name}<br>
</c:forEach>
<br>
<c:forEach var="name" items="${names}" begin="0" end="5" step="2">
    짝수번째 이름은 ${name}<br>
</c:forEach>