본문 바로가기

BackEnd/JSP

JSTL (JSP Standard Tag Library)

JSTL이란?

JSP의 경우 HTML 태그와 같이 사용되어 전체적인 코드의 가독성이 떨어집니다.

예를 들어 HTML 태그 도중 <% %>를 사용하여 html 코드의 흐름이 깨지며 코드 보기가 난해해집니다.

그래서 이러한 단점을 보완하고자 만들어진 태그 라이브러리가 JSTL입니다.

JSTL의 경우 우리가 사용하는 Tomcat 컨테이너에 포함되어 있지 않으므로, 별도의 설치를 하고 사용해야 합니다.

 

라이브러리 설치

https://tomcat.apache.org/download-taglibs.cgi

 

1. 위 링크에 접속하여 아래 3가지의 라이브러리 파일을 다운로드합니다.

2. WebContent -> WEB-INF -> lib 폴더에 삽입합니다.

 

 

 


 

JSTL에서는 총 다섯 가지의 라이브러리를 제공합니다.

 

http://java.sun.com/jsp/jstl/core c
http://java.sun.com/jsp/jstl/xml x
http://java.sun.com/jsp/jstl/fmt fmt
http://java.sun.com/jsp/jstl/sql sql
http://java.sun.com/jsp/jstl/functions fn

 

또한 위 라이브러리를 사용하기 위해서는 JSP 페이지 상단에 아래의 코드를 삽입해야 합니다.

 

core 라이브러리 사용 예문

 

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

 

 


예제 1. 변수 선언 후 출력 / 삭제 후 출력

<c:set var="name" value="kals" />
이름 : <c:out value="${name}" />
<br/>
<c:remove var="name"/>
이름 : <c:out value="${name}" />

<!-- 출력 결과 -->
이름 : kals
이름 : 

 

예제 2. 조건문 (if)

<c:if test="${1 + 2 == 3}">
안녕하세요.
</c:if>

<!-- 출력 결과 -->
안녕하세요.

 

예제 3. 조건문 (if - else)

<c:choose>
	<c:when test = "${1 + 1 == 5}"> <!-- true일 때 -->
		안녕하세요.
	</c:when>
	<c:otherwise> <!-- false일 때 -->
		반갑습니다.
	</c:otherwise>
</c:choose>

<!-- 출력 결과 -->
반갑습니다.

 

예제 4. 반복문

<c:forEach var="i" begin="1" end="10" step="1">
	${i} &nbsp;
</c:forEach>

<!-- 출력 결과 -->
1 2 3 4 5 6 7 8 9 10

 

예제 5. 반복문으로 삼각형 그리기

<!--
    *
   ***
  *****
 *******
********* 
-->

<c:forEach var="i" begin="0" end="4">
	<c:forEach var="j" begin="${i+1}" end="4">
		&nbsp;
	</c:forEach>
	
	<c:forEach var="j" begin="1" end="${1+(i*2)}">
		*
	</c:forEach>
	
	<br>
</c:forEach>

 


 

디자이너와 함께 일할 때는 JSTL 문법이 협업에 관하여 이해도를 더 높일 수 있고 서블릿을 이용하는 Model2를 채용하여 개발할 경우 Model2의 특성을 살려 구현할 수 있습니다.

 

JSTL 태그 정리 잘된 곳 : https://velog.io/@ye050425/JSP-JSTL-%EC%A0%95%EB%A6%AC

 

 

 

'BackEnd > JSP' 카테고리의 다른 글

MVC Model2 - 짧은 글로 이해하기  (0) 2020.05.09
JSP 내장 객체의 영역  (0) 2020.05.06
EL (Expression Language) 예제  (0) 2020.05.05
JSP의 태그 종류  (0) 2020.05.05
커넥션 풀(DBCP) 이용하여 DB 연동하기 (MySQL)  (0) 2020.05.05