JSTL(JSP Standard Tag Library)은 해당 라이브러리에 내장되어 있는 태그를 사용할 수 있도록 해주는 확장 태그입니다.
JSTL을 사용하기 위해서는 이클립스 기준
WEB-INF →
lib 내부에 해당
jar 파일을 추가 해준 뒤 아래와 같이
taglib로 선언해주어야 합니다.
jstl에서 가장 자주 사용하는
core를 통해 설명드리도록 하겠습니다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--
접두사 c로 시작하는 태그모음을 선언한다
라이브러리 jstl 내부의 core에 해당하는 내용을 접두사 c로 시작하는 태그로 사용하겠다
--%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>velog.jsp</title>
</head>
<body>
taglib안에 prefix는 일종의 변수명과 같은 역할을 수행하며 'c'로 시작하는 jstl 내부 core에 해당하는 내용을 사용하겠다는 의미를 지닙니다.
(사용방법은 다음과 같습니다.)
<c:set var="이름" value="값" scope="내장객체범위" />
<c:if test="조건">... 종속문장 ...</c:if>
<c:forEach var="반복변수" items="컬렉션">
... 종속문장 ...
</c:forEach>
- set
지정한 이름으로 scope 에 attribute 를 생성합니다.
기존 객체가 있다면 값을 덮어씁니다.
- if
test 의 조건이 참이면 내부 종속문장을 실행합니다.
시작태그와 마무리 태그를 분리해서 작성해야 합니다.
- forEach
items 의 길이만큼 반복하여, 각 요소를 var 에 담고 var 의 값을 출력하거나, 연산을 수행할 수 있습니다.
core이외에도 많은 종류의
JSTL 확장 태그가 존재합니다.
그 중 자주 사용되는 몇 가지 소개해보자면
-
format(fmt)
- 날짜나 숫자의 표현 서식을 정합니다.
-
function(fn)
- split이나 length와 같은 함수들을 태그형식으로 지원합니다.
-
sql
- DB에 접속하고 쿼리를 실행하는 과정을 태그로 지원합니다.
-
xml
- 다른 xml파일을 불러와서 자바 객체를 생성하거나 설정을 수행합니다.
등이 있습니다.