JSP(JavaServer Pages) 개발에서 JSTL(JavaServer Pages Standard Tag Library)은 반복문, 조건문, 포맷 처리, URL 처리 등을 더 깔끔하고 안전하게 구현할 수 있게 도와주는 핵심 태그 라이브러리입니다.
이 포스팅에서는 JSTL이 필요한 이유부터 실전 예제까지 하나씩 설명드리겠습니다.
✅ JSTL이란?
JSTL은 JSP에서 자바 코드를 줄이고 HTML처럼 선언형 문법으로 로직을 표현할 수 있게 도와주는 표준 태그 라이브러리입니다.
주요 태그 라이브러리
URI설명
core | 조건문, 반복문, 변수처리 등 일반 로직 |
fmt | 날짜, 숫자, 국제화 등 포맷 처리 |
sql | DB 접근 처리 (비추천) |
fn | 문자열 함수 제공 |
💡 JSTL은 EL(Expression Language)과 함께 사용할 때 가장 효과적입니다.
✅ JSTL 사용을 위한 사전 준비
1) Maven 의존성 추가
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
Spring Boot 프로젝트에서는 tomcat-embed-jasper와 함께 설정해야 JSP가 렌더링됩니다.
2) JSP 상단에 태그라이브러리 선언
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
✅ JSTL 핵심 태그 예제 모음
🔁 반복문 <c:forEach>
<c:forEach var="user" items="${userList}" varStatus="status">
<tr>
<td>${status.index}</td>
<td>${user.name}</td>
<td>${user.email}</td>
</tr>
</c:forEach>
❓ 조건문 <c:if> / <c:choose>
<c:if test="${user.age >= 20}">
성인입니다
</c:if>
<c:choose>
<c:when test="${user.age < 13}">어린이</c:when>
<c:when test="${user.age < 20}">청소년</c:when>
<c:otherwise>성인</c:otherwise>
</c:choose>
🔗 URL 처리 <c:url>
<a href="<c:url value='/logout' />">로그아웃</a>
📅 날짜 포맷 <fmt:formatDate>
<fmt:formatDate value="${user.regDate}" pattern="yyyy-MM-dd HH:mm" />
💬 메시지 바인딩 <fmt:message> (국제화)
<fmt:message key="label.username" />
✅ JSTL 사용 시 주의사항
- JSTL과 EL은 자바 코드 삽입(<% %>)보다 가독성과 유지보수성이 좋습니다.
- JSP에 자바 로직을 넣기보다 JSTL/EL로 처리하도록 설계 방향을 잡으세요.
- JSTL 태그에서 사용할 객체는 반드시 request, session, model 등에 바인딩되어 있어야 합니다.
✅ 마무리
JSP에서 JSTL은 "자바 로직을 HTML처럼 표현"하게 해주는 유용한 도구입니다. 위 예제들을 활용하면 더 깔끔하고 유지보수하기 쉬운 JSP 페이지를 구성할 수 있습니다.
'FrontEND > Jsp' 카테고리의 다른 글
IntelliJ Java 11 환경에서 JSP 국제화(i18n) 적용 가이드 (2) | 2025.04.16 |
---|---|
IntelliJ에서 JSP 성능 최적화 방법 (1) | 2025.04.14 |
IntelliJ JSP 개발환경 설정 가이드 (0) | 2025.04.12 |
IntelliJ에서 개발 생산성을 높이는 10가지 설정 꿀팁 (JSP + Spring Boot 환경 기준) (1) | 2025.04.10 |
jsp에서 resource 경로 세팅 방법 (1) | 2019.05.16 |