FrontEND/Jsp

JSP에서 JSTL 활용하기

mingmingIT 2025. 4. 13. 10:25

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 페이지를 구성할 수 있습니다.