Web개발/JSP & Servlet

[JSP] JSTL 라이브러리

noobdev 2019. 12. 31. 21:10

JSTL은 JSP Standard Tag Library의 약자로 JSP에서 사용되는 커스텀 태그 중 가장 많이 쓰이는 태그를 표준화하여 라이브러리로 제공하는 것이다. 

JSTL은 자주 쓰이는 커스텀 태그를 모아둔 것이기 때문에 여러 가지 태그를 지원한다.

 

 

JSTL에서 제공하는 태그 종류   출처: 자바 웹을 다루는 기술

라이브러리 세부 기능 접두어 관련 URL
코어 변수 지원, 흐름 제어, 반복문 처리, URL 처리 c http://java.sun.com/jsp/jstl/core
국제화 지역, 메시지 형식, 숫자 및 날짜 형식 fmt http://java.sun.com/jsp/jstl/fmt
XML XML 코어, 흐름 제어, XML 변환 x http://java.sun.com/jsp/jstl/xml
데이터베이스 SQL sql http://java.sun.com/jsp/jstl/sql
함수 컬렉션 처리, 문자열 처리 fn http://java.sun.com/jsp/jstl/functions

 

 

 


 

 

JSTL은 JSP 2.0부터 추가된 기능이므로 톰캣에서는 기본으로 제공되지 않으므로 라이브러리를 따로 추가해주어야 한다.

 

 

Apache Tomcat® - Apache Taglibs Downloads

Welcome to the Apache Taglibs download page. This page provides download links for obtaining the latest version of the Apache Standard Taglib, as well as links to the archives of older releases. You must verify the integrity of the downloaded files. We pro

tomcat.apache.org

위 링크에서 라이브러리를 다운로드할 수 있다. 아래의 사진에 보이는 Impl, Spec, EL, Compat 총 4개의 jar 파일을 다운로드하면 된다.

 

4개의 jar 파일을 다운받아야한다.

 

jstl.zip
0.38MB

혹은 필자가 업로드해둔 jstl.zip 파일을 다운로드하여도 된다.

 

 

그럼 이제 다운로드한 라이브러리를 프로젝트 안에 lib폴더에 복사 후 붙여 넣기를 하면 된다.

 

위 사진에 lib폴더에는 JSTL라이브러리 말고도 JDBC, 커넥션 풀, 파일 업/다운로드 라이브러리들이 있는 상태이다.

위 사진과 같이 붙여 넣어주면 된다.

 

 


JSTL 태그 라이브러리 사용하기

JSTL라이브러리를 사용하려면 우선 JSP페이지에 taglib 디렉티브 태그를 추가해주어야 한다. 

taglib 디렉티브 태그를 추가하지 않으면 실행될 때 오류가 발생한다.

 

taglib 디렉티브 태그 선언 예

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

prefix는 사용할 태그의 종류의 따라 위의 정리해둔 표의 접두어를 써주면 되고, uri는 그 접두어에 맞는 관련 URL를 써주면 된다.

 

예를 들어  코어 태그들을 사용하고 싶다면 <%@ taglib prefix = "c" uri="http://java.sun.com/jsp/jstl/core" %> 

 

국제화와 관련된 태그를 사용하고 싶다면 <%@ taglib prefix = "fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>   

 

위 사진과 같이 적용해 주면 된다.

 

 

https://docs.oracle.com/javaee/5/jstl/1.1/docs/tlddocs/

 

TLDDoc Generated Documentation

 

docs.oracle.com

위 링크는 오라클에서 제공해주는 JSTL 태그의 종류들과 사용법들이다. 참고하면 도움이 될 것이다.

 

 

 


 

Core 태그 라이브러리

많이 쓰이는 Core태그 라이브러리를 사용하면 자바 코드의 양을 줄여서 복잡한 JSP화면을 좀 더 단순하게 코딩할 수 있다.

Core 태그 라이브러리는 변수의 선언과 제거, 반복문 조건문, 서블릿의 포워드 기능과 import 그리고 예외처리 기능까지 많은 기능을 지원한다.

 

Core 태그 라이브러리 기능  출처: 자바 웹을 다루는 기술

기능 태그 설명
변수 지원 <c:set> JSP 페이지의 변수를 지정
<c:remove> 지정된 변수를 제거
흐름 제어 <c:if> 조건문을 사용
<c:choose>

switch 문을 사용 

<c:when><c:otherwise>를 서브 태그로 가짐

<c:forEach> 반복문을 사용
<c:forTokens> 구분자로 분리된 각각의 토큰을 처리할 때 사용
URL 처리 <c:import> URL을 이용해 다른 자원을 JSP 페이지에 추가
<c:redirect> 서블릿의 response.sendRedirect( ) 기능을 수행
<c:url> 요청 매개변수로부터 URL을 생성
기타 태그 <c:catch> 예외 처리에 사용
<c:out> JspWiter에 내용을 처리한 후 출력

 

Core 라이브러리 중 변수를 지정하는 <c:set>태그로 예제를 보자면 아래와 같다.

 

위 사진은  <c:set> 태그로 컨텍스트패스를 변수로 만들어 사용하는 예이다.

<c:set> 태그의 var 속성은 변수의 이름을 value 속성은 변수 값을 지정한다.

 

변수의 출력이나 사용할 때는 표현 언어 EL로 바로 접근이 가능하다.

 

 

 

 

<c:choose>태그는 switch문을 대체하는 태그로 when과 otherwise라는 서브 태그를 갖는다. 

when태그의 조건을 검사해서 조건이 맞다면 그 문장을 실행하고 조건이 맞는 것이 없다면 otherwise 태그를 실행한다.

switch문의 case와 default랑 같다.

 

<c:choose> 태그

 


 

 

포매팅 태그 라이브러리

포매팅 태그 라이브러리는 국가의 시간이나 돈의 표기법, 날짜 등 국제화와 관련된 태그들을 제공한다.

 

선언 법은 아래 사진과 같다.

 

 

포매팅 태그 라이브러리 종류  출처: 자바 웹을 다루는 기술

분류 태그 설명
포메팅 <fmt:timeZone>

둘 다 지정한 국가의 시간을 지정하는 태그 

<fmt:timeZone>태그는 태그를 열고 닫는 영역안에서만 적용된다.

<fmt:setTimeZone>
<fmt:formatNumber> 표시할 숫자의 형식을 지정한다.
<fmt:formatDate> 지정한 형식읠 날짜를 표시한다.

 

 

<fmt:formatNumber> 태그는 숫자와 관련된 기능을 제공한다. 예를 들어 상품의 가격이 20000원인 경우 20,000으로 표기하는 등의 기능을 제공한다.

 

<fmt:formatDate> 자바의 DateFormat 클래스와 비슷한 기능을 제공하고 시간을 특정 나라의 시간으로 변경하는 등의 기능을 제공한다.

 

 

 

 

 

 

본 포스팅은 필자가 공부한 것을 정리해놓은 것으로 오류가 존재할 수 있습니다.
참고: 자바 웹을 다루는 기술