[JSP] JSTL (JSP Standard Tag Library) 정리

2023. 10. 17. 20:31·JSP
728x90

JSTL 개요

 

> 일반사항

JCP (Java Community Process, 자바표준화 단체)에서 정한 표준

JSP 2.0에 포함

일반적으로 필요한 기능의 태그 라이브러리를 미리 구현함

 

> JSTL 구성요소

CORE : 공통 필수 기능

XML : XML 문서 처리 관련 기능

I18N : 국제화 지원 관련 기능

SQL : JDBC를 이용한 DB 처리 기능

 

 

 

JSTL 라이브버리별 tablib URL과 Prefix

라이브러리 (Library) URI prefix
CORE http://java sun.com/jsp/jstl/core c
XML http://java.sun.com/jsp/jstl/xml x
I18N http://java.sun.com/jsp/jstl/fmt fmt
SQL http://java.sun.com/jsp/jstl/sql sql
함수 http://java.sun.com/jsp/jstl/funtions fn

> 페이지 지시어에서 사용법 (core)

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

 

 

 

JSTL 라이브러리

> 수식, 흐름제어, URL을 통한 자원 접근 등 가장 일반적으로 필요한 기능으로 구성

> 코어 라이브러리는 표현식, 반복처리, URL 관리 기능 등을 제공하므로 웹 애플리케이션을 개발할 때 유용하게 사용 가

> core 태그는 반드시 알아두어야 함

> core 태그 이외의 다른 라이브러리는 JSTL 이외에도 많이 개발되어 있으며 경우에 따라서는 직접 커스텀 태그로 구현하는 것이 좋을 수도 있음

 

# 코어

라이브러리 기능 태그 접두어
코어 General Purpose Actions (일반적인 것) catch
out
remove
set
c
Conditional Actions (조건) if
choose
when
otherwise
Iterator Actions (반복) forEach
forTokens
URL Related Actions (URL 관련) import
redirect
url
param

 

 

# I18N(국제화)

라이브러리 기능 태그 접두어
I18N(국제화) Locale setLocale fmt
Number and DateFormatting formatNumber formatDate

 

 

JSTL 수식 언어

> EL (Expression Language) 지원

> 간단한 연산식 사용 가능

> 산술 연산자

연산자 기능
+ 더하기
- 빼기
* 곱하기
/ or div 나누기
% or mod 몫

 

 

 

태그 모음

<c:set> 태그

변수를 설정하거나 객체의 멤버변수 값을 설정할 때 사용하는 태그

<c:set value="값" var="변수명" />

이렇게 선언하고나면 ${변수명} 형식으로 사용할 수 있다.

scope="session"을 추가하면 다른 영역에 저장이 가능하다. scopr의 경우 default 값은 "page"이다.

<c:set value="값" var="변수명" scope="page" 또는 "session" 또는 "request" 또는 "application" />

해당 변수는 page 영역의 속성으로 선언되기 때문에 내부적으로 자바 변수로 선언되는 것이 아니다. 따라서 <%= 변수이름> 형태로는 출력이 불가하다.

 

<c:out> 태그

변수 내용을 출력할 때 사용하는 태그

EL 태그로도 출력할 수 있지만 태그가 포함된 변수를 escapeXml 항목을 true 또는 false로 지정하여 태그를 포함해서 출력할지 적용해서 출력할지 결정할 수 있다.

<c:out value="값" var="변수명" />

- 태그 바디가 없는 경우
<c:out value="${값}" escaprXml="true" 또는 "false" />

- 태그 바디가 있는 경우
<c:out value="${값}" escaprXml="true" 또는 "false" >
     default value (value가 없을 때 출력될 기본 값)
</c:out>

 

<c:remove> 태그

변수를 제거할 때 사용하는 태그

<c:remove var="변수명" />

해당 이름을 가진 변수가 제거된다. 여기서 주의할 부분은, 이렇게 선언할 경우 모든 scope에서 해당 이름의 변수가 제거되므로 특정 영역의 변수만 제거하고 싶을 땐 아래와같이 scope를 지정해준다.

<c:remove var="변수명" scope="request" />

 

 

<c:if test="true" 또는 "false"> 태그

출력 태그와 비슷하지만 조건이 있다. test 안의 내용이 true이냐 false이냐에 따라 내용을 출력하거나 출력하지 않는다. 자바의 if문의 비슷하지만 else문을 지원하지 않는다.

- 바디 내용이 없는 경우
<c:if test="test" var="변수명" scope="page" 또는 "session" 또는 "request" 또는 "application" />

- 바디 내용이 있는 경우
<c:if test="test" var="변수명" scope="page" 또는 "session" 또는 "request" 또는 "application" >
     body content
</c:if>

 

 

<c:choose>, <c:when>, <c:otherwise> 태그

세 태그는 함께 사용된다. 자바의 if ~ else if문, switch문과 비슷하다.

<c:choose> 태그 내에 <c:when> 태그를 여러 개 사용할 수 있다.

<c:choose>
     <c:when test="${1 > 0}">
          1은 0보다 크다<br>
     </c:when>
     <c:when test="${2 > 1}">
          2은 1보다 크다<br>
     </c:when>
     <c:otherwise>
          대부분 숫자는 0보다 크다<br>
     </c:otherwise>
</c:choose>

 

<c:forEach> 태그

반복문과 관련된 태그로 자바의 for문과 유사하다.

- 컬렉션 객체의 크기 만큼 반복
<c:forEach [var="varName"] items="collection" [varStatus="varStatusName"] 
           [begin="begin"] [end="end"] [step="step"]>
    body content
</c:forEach>

2. 지정된 횟수 반복
<c:forEach [var="varName"] [varStatus="varStatusName"] begin="begin" end="end" [step="step"]>
    body content
</c:forEach>

 

<c:forTokens> 태그

문자열에 포함된 토큰을 분리해 각각의 토큰에 대해 반복 처리를 수행하도록 하는 태그이다.

<c:forEach>와 비슷하게 자바의 for문과 유사하지만, String/Tokenizer 클래스 기능을 제공한다.

자바에서의 String/Tokenizer 클래스는 문자열로부터 공백이나 '-' 등 특정 구분자를 기준으로 문자열을 분할하는 기능을 제공하는 클래스이다.

<c:forTokens var="temp" items="aaa bbb ccc" delims=" ">
    ${temp}<br>
</c:forTokens>

 

날짜 관련 태그

type에 date, time 둘 중 하나만 쓰면 하나만 출력됨.

<fmt:formatDate value="<%=new Date() %>" type="both" />

 

숫자 관련 태그

- 세 자리마다 끊어서 쉼표 출력
<fmt:formatNumber value="12345678" groupingUsed="true"/>

- 소수점 둘째 자리까지만 출력
<fmt:formatNumber value="3.141592" pattern="#.##"/>
728x90
저작자표시 비영리 변경금지 (새창열림)

'JSP' 카테고리의 다른 글

[JSP] 게시판 MVC 패턴 흐름도  (0) 2023.10.19
'JSP' 카테고리의 다른 글
  • [JSP] 게시판 MVC 패턴 흐름도
gxxg
gxxg
함께 일하고 싶은 개발자를 꿈꾸는 예비개발자의 공부 기록
  • gxxg
    공공
    gxxg
  • 전체
    오늘
    어제
    • 분류 전체보기 (138)
      • ☁️ 구름 x 카카오 Deep Dive 풀스택 (7)
        • html, css (1)
        • Java (3)
        • 스프링 MVC (0)
      • 💻 코딩테스트 (89)
        • 백준 (2)
        • programmers (87)
      • SQLD (1)
      • Language (3)
        • Java (2)
        • JavaScript (1)
      • Style Sheet (0)
        • CSS (0)
        • SCSS & SASS (0)
      • DBMS (2)
        • Oracle (2)
        • MySQL (0)
        • postgresql (0)
        • 데이터베이스 기초 이론 (0)
      • React (0)
      • SpringBoot (0)
      • JSP (2)
      • 알고리즘 (0)
      • 2023-02 몰입형 SW 정규 교육 (24)
        • 9월 프로젝트 (8)
      • 벽돌깨기 (4)
      • Etc (4)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    JSP
    이클립스
    회원 관리 시스템
    프로그래머스
    java
    junit 테스트
    톰캣
    springboot
    오블완
    코딩테스트
    티스토리챌린지
    0단계
    구현체
    POST
    코테
    자바스크립트
    javascript
    Lv2
    programmers
    eclipse
    CSS
    프로젝트 구조
    Lv0
    HTML
    spring
    자바
    DFS
    LV3
    2단계
    3단계
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
gxxg
[JSP] JSTL (JSP Standard Tag Library) 정리
상단으로

티스토리툴바