JSP JSTL


JSTL (JSP 표준 태그 라이브러리)

JSTL 개요 (JSTL Overview)

JSTL (JavaServer Pages Standard Tag Library)은 JSP 페이지에서 사용되는 커먼 태스크를 단순화하고 표준화하는 데 도움을 주는 태그 라이브러리입니다. JSTL은 데이터 처리, 포맷팅, 조건문, 반복문 등을 위한 다양한 태그를 제공합니다. 이를 통해 JSP 코드의 가독성을 높이고 유지보수를 쉽게 할 수 있습니다.

JSTL 설치 및 설정 (JSTL Installation and Configuration)

JSTL을 사용하려면 JSTL 라이브러리를 프로젝트에 추가해야 합니다. 일반적으로 Apache Taglibs에서 JSTL 라이브러리를 다운로드하거나 Maven을 사용하는 경우 pom.xml에 의존성을 추가합니다.

설치 단계:

  1. JSTL 라이브러리 다운로드: Apache Taglibs에서 JSTL 라이브러리를 다운로드합니다.
  2. 라이브러리 추가: 다운로드한 JSTL JAR 파일을 프로젝트의 WEB-INF/lib 디렉토리에 추가합니다.
  3. 태그 라이브러리 선언: JSP 파일 상단에 JSTL 태그 라이브러리를 선언합니다.
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>

코어 태그 (Core Tags)

JSTL 코어 태그는 조건문, 반복문, URL 처리 등을 포함한 일반적인 태스크를 처리합니다.

주요 코어 태그:

  • : 값 출력
  • : 조건문
  • , , : 복합 조건문
  • : 반복문
  • : 토큰 단위 반복
  • : 변수 설정
  • : 변수 제거
  • : 예외 처리
  • : URL 콘텐츠 임포트
  • : URL 리라이팅
  • : 페이지 리디렉션
  • : URL 파라미터 추가

예제:

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

<!-- 변수 설정 -->
<c:set var="name" value="홍길동" />

<!-- 조건문 -->
<c:if test="${name == '홍길동'}">
    <p>안녕하세요, ${name}님!</p>
</c:if>

<!-- 반복문 -->
<ul>
    <c:forEach var="item" items="${itemList}">
        <li>${item}</li>
    </c:forEach>
</ul>

포맷 태그 (Format Tags)

포맷 태그는 날짜, 숫자, 통화 등을 포맷팅하는 데 사용됩니다.

주요 포맷 태그:

  • : 숫자 포맷팅
  • : 날짜 포맷팅
  • : 문자열을 숫자로 파싱
  • : 문자열을 날짜로 파싱
  • : 리소스 번들 설정
  • : 리소스 번들 메시지 출력
  • : 로케일 설정
  • : 시간대 설정

예제:

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

<!-- 숫자 포맷팅 -->
<fmt:formatNumber value="1234567.89" type="currency" />

<!-- 날짜 포맷팅 -->
<fmt:formatDate value="${now}" pattern="yyyy-MM-dd HH:mm:ss" />

SQL 태그 (SQL Tags)

SQL 태그는 데이터베이스 쿼리를 JSP 페이지에서 직접 수행하는 데 사용됩니다.

주요 SQL 태그:

  • : 데이터 소스 설정
  • : 데이터베이스 쿼리 실행
  • : 데이터베이스 업데이트 실행
  • : 쿼리 파라미터 설정
  • : 날짜 파라미터 설정
  • : 트랜잭션 처리

예제:

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

<!-- 데이터 소스 설정 -->
<sql:setDataSource var="db" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/mydb" user="root" password="password" />

<!-- 데이터베이스 쿼리 실행 -->
<sql:query dataSource="${db}" var="result">
    SELECT * FROM users
</sql:query>

<!-- 쿼리 결과 출력 -->
<table>
    <c:forEach var="row" items="${result.rows}">
        <tr>
            <td>${row.id}</td>
            <td>${row.name}</td>
        </tr>
    </c:forEach>
</table>

XML 태그 (XML Tags)

XML 태그는 XML 데이터를 처리하는 데 사용됩니다.

주요 XML 태그:

  • : XML 파싱
  • : XML 데이터 출력
  • : XML 노드 반복
  • : XML 조건문
  • , , : XML 복합 조건문
  • : XML 변수 설정
  • : XML 변수 제거

예제:

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

<!-- XML 파싱 -->
<x:parse var="doc" xml="<books><book><title>JSP</title></book></books>" />

<!-- XML 데이터 출력 -->
<x:out select="$doc/books/book/title" />

함수 태그 (Function Tags)

함수 태그는 문자열 처리 등의 공통 함수들을 제공합니다.

주요 함수 태그:

  • fn:contains: 문자열 포함 여부 확인
  • fn:containsIgnoreCase: 대소문자 무시하고 문자열 포함 여부 확인
  • fn:startsWith: 문자열 시작 여부 확인
  • fn:endsWith: 문자열 끝 여부 확인
  • fn:substring: 문자열 부분 추출
  • fn:substringAfter: 특정 문자열 이후 부분 추출
  • fn:substringBefore: 특정 문자열 이전 부분 추출
  • fn:join: 문자열 배열을 하나의 문자열로 결합
  • fn:split: 문자열을 배열로 분리
  • fn:indexOf: 문자열의 인덱스 위치 반환
  • fn:length: 문자열의 길이 반환
  • fn:escapeXml: XML 특수문자 이스케이프 처리

예제:

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

<!-- 문자열 포함 여부 확인 -->
<c:if test="${fn:contains(name, '길동')}">
    <p>이름에 '길동'이 포함되어 있습니다.</p>
</c:if>

<!-- 문자열 부분 추출 -->
<p>이름 일부: ${fn:substring(name, 1, 3)}</p>

Leave a Reply

Your email address will not be published. Required fields are marked *