JSTL은 JSP에서 스크립트릿, 즉 자바 코드 블록을 사용하지 않고 HTML 형식을 유지하면서 조건문, 반복문, 간단한 연산과 몇몇 유용한 기능을 손쉽게 사용할 수 있도록 지원하기 위해 만들어진 표준 커스텀태그 라이브러리다.
커스텀 태그에서 살펴본 것처럼 서버에서만 해석할 수 있는 구조로 인해 디자이너와의 협업에 불편한 부분이 있고, 개발 과정에서 UI 확인을 위해 서버를 통해야만 하는 비효율적인 문제가 존재한다. 이러한 문제점은 모바일 환경 중심의 front-end 개발 트렌드와는 다소 거리가 있다.
규격상 JSTL은 core, xml, II8N(다국어 처리), 데이터베이스, 함수 등으로 구성되어 있으나 뷰 중심의 JSP 구현에는 core 정도만 사용된다.
JSTL은 표준 규격으로만 존재하기 때문에 개발에 적용하기 위해서는 실제 구현된 라이브러리가 필요하다. 여러 구현 버전이 있지만 Apache Standard Taglib를 주로 사용한다.
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
pom.xml에 dependency를 추가한다.
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
jsp에 taglib 지시어를 추가한다.
core 라이브러리는 변수 처리, 흐름 제어, URL 관리, 출력 등 가장 기본적인 기능을 구현해둔 라이브러리다. 제일 많이 사용되는 기능인 흐름 제어와 관련된 태그를 살펴본다.
<!-- 조건문 -->
<c:if test="조건식">
조건식이 참일 경우 출력될 내용
else if는 없다.
</c:if>
<!-- 반복문 -->
<c:forEach var="user" items="${userInfo}" varStatus="status">
index : ${status.index}
count : ${status.count}
name : ${user.name}
</c:forEach>