JSP

EL과 JSTL 완벽 가이드

초코너무조코 2025. 2. 26. 20:49
728x90

오늘은 JSP 개발에서 필수적인 두 가지 기술인 EL(Expression Language)과 JSTL(JSP Standard Tag Library)에 대해 자세히 알아보겠습니다. 이 두 기술을 잘 이해하고 활용하면 JSP 코드를 더 깔끔하고 효율적으로 작성할 수 있습니다.

EL(Expression Language)이란?

EL은 JSP 2.0에서 도입된 스크립트 언어로, 주로 데이터를 표현하고 접근하는 데 사용됩니다. "${}"로 표현되며, JSP 페이지 내에서 변수, 속성, 매개변수 등에 쉽게 접근할 수 있게 해줍니다.

EL의 주요 특징

  1. 간결한 문법
  2. 자동 형변환 지원
  3. 내장 객체 제공 (param, requestScope, sessionScope 등)
  4. 기본 연산자와 함수 지원

EL 사용 예제

<p>사용자 이름: ${user.name}</p>
<p>총 가격: ${price * quantity}</p>
<p>파라미터 값: ${param.id}</p>

JSTL(JSP Standard Tag Library)이란?

JSTL은 JSP에서 자주 사용되는 기능을 미리 구현해 놓은 커스텀 태그 라이브러리입니다. 조건문, 반복문, 데이터 표현 등의 로직을 태그 형태로 제공하여 JSP 코드의 가독성을 높이고 개발을 간소화합니다.

JSTL의 주요 라이브러리

  1. Core (c): 변수 지원, 흐름 제어, URL 처리
  2. Formatting (fmt): 지역, 숫자, 날짜 형식 지정, 국제화
  3. SQL (sql): 데이터베이스 액세스
  4. XML (x): XML 문서 처리
  5. Functions (fn): 문자열 처리

JSTL 사용 예제

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

<c:if test="${not empty userList}">
    <ul>
        <c:forEach var="user" items="${userList}">
            <li>${user.name}</li>
        </c:forEach>
    </ul>
</c:if>

EL과 JSTL의 차이점

  1. 목적
    •   EL: 주로 데이터 표현과 접근에 사용
    •   JSTL: 프로그래밍 로직 구현에 중점
  2. 문법:
    •   EL: "${}" 형식으로 간단하게 사용
    •   JSTL: XML 태그 형식으로 사용 (<c:if>, <c:forEach> 등)
  3. 기능 범위:
    •   EL: 데이터 출력과 간단한 연산에 주로 사용
    •   JSTL: 조건문, 반복문, 데이터 포맷팅 등 복잡한 로직 처리 가능
  4. 사용 방식:
    •   EL: 단독으로 사용 가능
    •   JSTL: 대부분 EL과 함께 사용되어 더 강력한 기능 제공

EL과 JSTL을 함께 사용하는 예제

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

<c:if test="${not empty productList}">
    <table>
        <tr>
            <th>제품명</th>
            <th>가격</th>
            <th>재고</th>
        </tr>
        <c:forEach var="product" items="${productList}">
            <tr>
                <td>${product.name}</td>
                <td><fmt:formatNumber value="${product.price}" type="currency" currencySymbol="₩"/></td>
                <td>
                    <c:choose>
                        <c:when test="${product.stock > 0}">
                            <span style="color: green;">재고 있음</span>
                        </c:when>
                        <c:otherwise>
                            <span style="color: red;">품절</span>
                        </c:otherwise>
                    </c:choose>
                </td>
            </tr>
        </c:forEach>
    </table>
</c:if>

이 예제에서는 EL과 JSTL을 함께 사용하여 제품 목록을 표시하고 있습니다. EL은 데이터 접근과 표현에, JSTL은 조건문과 반복문 처리에 사용되고 있습니다.

결론

EL과 JSTL은 JSP 개발자에게 필수적인 도구입니다. EL은 데이터 접근과 표현을 간소화하고, JSTL은 복잡한 로직을 태그 형태로 구현할 수 있게 해줍니다. 두 기술을 적절히 조합하여 사용하면 JSP 코드의 가독성과 유지보수성을 크게 향상시킬 수 있습니다.

728x90