JSTL(JSP Standard Tag Library)은 JSP 페이지 작성 시 반복되는 자바 코드를 줄이고 가독성을 높여 주는 표준 태그 라이브러리입니다. JSTL 태그는 기능에 따라 크게 다음 5가지 라이브러리 그룹으로 분류할 수 있습니다.
- 코어 태그(Core Tags)
- 포매팅 태그(Formatting Tags)
- SQL 태그(SQL Tags)
- XML 태그(XML Tags)
- JSTL 함수(JSTL Functions)
1. 코어 태그 (Core Tags)
코어 태그는 변수 선언과 출력, 조건 분기, 반복 처리, URL 제어 등 JSP 프로그래밍의 가장 기본적인 기능을 담당합니다. 접두사는 c를 사용하며, <c:out>, <c:set>, <c:if>, <c:choose>, <c:forEach> 등이 대표적입니다.
2. 포매팅 태그 (Formatting Tags)
포매팅 태그는 숫자와 날짜·시간의 형식을 지정하고, 다국어 환경을 위한 국제화(i18n) 메시지 처리 기능을 제공합니다. 접두사는 fmt를 사용하며, <fmt:formatNumber>, <fmt:formatDate>, <fmt:message>, <fmt:setLocale> 등이 여기에 속합니다.
3. SQL 태그 (SQL Tags)
SQL 태그는 JSP 페이지에서 데이터베이스에 직접 연결해 데이터를 조회·추가·수정·삭제할 수 있도록 지원합니다. 접두사는 sql을 사용하며, <sql:setDataSource>, <sql:query>, <sql:update> 등이 대표적입니다. 다만 실무에서는 유지보수와 보안을 위해 별도의 DAO 계층에서 DB를 처리하는 것이 일반적입니다.
4. XML 태그 (XML Tags)
XML 태그는 XML 문서의 생성과 파싱, XPath 기반 데이터 추출, XSLT 변환 등 XML 처리 전반을 지원합니다. 접두사는 x를 사용하며, <x:parse>, <x:out>, <x:transform> 등이 포함됩니다.
5. JSTL 함수 (JSTL Functions)
JSTL 함수는 엄밀히 말해 태그가 아닌 EL(Expression Language)에서 호출하는 함수 모음입니다. 문자열 길이 확인, 부분 문자열 추출, 대소문자 변환, 컬렉션 크기 확인 등 다양한 유틸리티 기능을 제공합니다. 접두사는 fn을 사용하며, ${fn:length(list)}, ${fn:toUpperCase(str)}처럼 활용합니다.
JSTL 라이브러리별 접두사와 URI 정리
| 라이브러리 | 접두사 | URI |
|---|---|---|
| Core | c | https://java.sun.com/jsp/jstl/core |
| Formatting | fmt | https://java.sun.com/jsp/jstl/fmt |
| SQL | sql | https://java.sun.com/jsp/jstl/sql |
| XML | x | https://java.sun.com/jsp/jstl/xml |
| Functions | fn | https://java.sun.com/jsp/jstl/functions |
각 라이브러리는 JSP 페이지 상단에 taglib 디렉티브를 선언한 후 사용할 수 있습니다. 예를 들어 가장 많이 쓰이는 코어 태그는 다음과 같이 선언합니다.
<%@ taglib prefix="c" uri="https://java.sun.com/jsp/jstl/core" %>
이처럼 JSTL은 기능별로 잘 정리된 5개의 라이브러리를 통해 스크립틀릿 사용을 최소화하고, JSP 코드를 더 깔끔하고 유지보수하기 쉽게 만들어 줍니다.