[JSP] JSTL
JSTL
📌 JSTL(JSP Standard Tag Library)
: JSTL + EL
HTML 코드 내 java 코드인 스크립트릿을 사용하지 않고 HTML 형식을 유지하면서,
조건문, 반복문, 간단한 연산 등 유용한 기능을 손쉽게 사용할 수 있도록
지원하기 위해 만들어진 표준 커스텀 태그 라이브러리.
📌 규격상 JSTL은 core, xml, I18N(다국어 처리), 데이터베이스, 함수 등으로 구성되어 있으며,
뷰 중심의 JSP 구현에서는 core 정도만 사용됨.
JSTL 라이브러리 설치
📌 JSTL 라이브러리 설치
: 표준 규격으로만 존재하기 때문에 개발에 적용하기 위해서는 실제 구현된 라이브러리가 필요함.
주로 Apache Standard Taglib를 사용함.
① 아래 사이트에 접속한다.
https://tomcat.apache.org/download-taglibs.cgi
Apache Tomcat® - Apache Taglibs Downloads
Welcome to the Apache Taglibs download page. This page provides download links for obtaining the latest version of the Apache Standard Taglib, as well as links to the archives of older releases. You must verify the integrity of the downloaded files. We pro
tomcat.apache.org
② Impl : taglibs-standard-impl-1.2.5.jar과 Spec: taglibs-standard-spec-1.2.5.jar을 다운로드 한다.
③ webapp - WEB-INF - lib 폴더에 다운로드한 파일을 복사해 넣는다.
JSTL 사용하기 - core 라이브러리
📌 core 라이브러리
: 변수 처리, 흐름 제어 ,URL 관리, 출력 등 가장 기본적인 기능을 구현해둔 라이브러리.
📌 core 라이브러리 종류
기능 | 태그 | 사용 예 |
변수 관련 | remove, set | 변수 지정과 삭제 |
흐름 제어 | if, choose / when / otherwise, forEach, forTokens | 조건 처리, 반복, 토큰 파싱 |
URL 관리 | import, redirect, url, param | URL 핸들링 |
기타 | catch, out | 에러 처리, 출력 |
📌 JSP에서 사용하기 위해 taglib 지시어 추가해야 함.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
JSTL 사용하기 - core 라이브러리 : <c:if>
📌 <c:if>
: 자바 if문과 유사하지만, else를 지원하지 않음.
조건 테스트를 위해 속성을 참조할 범위를 지정할 수 있지만, 필수 사항은 아님.
📌 사용 형식
: test에서 선언한 조건을 만족하면, 태그 보디 부분 실행함.
<c:if test="조건" [var="결과 변수"] [scope="{page|request|session|application}"]>
조건이 참인 경우, 출력되는 부분
</c:if>
JSTL 사용하기 - core 라이브러리 : <c:forEach>
📌 <c:forEach>
: 태그로 화면에 데이터를 반복해 출력할 때 주로 사용.
자바의 for문과 같은 개념이지만, 커스텀 태그 특성상 정밀한 설정이 가능하지 않기 때문에, 속성을 활용해야 함.
index, count 등을 지원하는 varStatus 제공함.
📌 사용 형식
- var : 배열, 리스트 등 집합형 객체.
- varStatus : 반복 진행 상황을 참조하기 위한 객체.
<c:forEach [var="참조 객체"] [varStatus="상태 정보 변수"] begin-"시작" end="종료" [step="반복 단계 증가 값, 1이 기본"] >
반복 출력되는 부분
</c:forEach>