값을 간결하고 간편하게 출력할 수 있도록 해주는 언어
<%= %>, out.println(); 과 같은 자바코드를 더 이상 사용하지 않고 좀더 간편하게 출력을 지원하기 위한 도구이다.
배열이나 컬렉션에서도 사용되고 JavaBean 프로퍼티에서도 사용된다.
${...} 내에 표현식으로 표현한다.page > request > session > application( 괄호 ) 안의 문자로 표현되기도 한다.
==(eq), !=(ne), <(lt), >(gt), <=(le), >=(ge)${empty ""} : true${empty null} : true${empty data} : (data변수에 값이 없으면) false<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>변수 생성시
<c:set />
// var map = (map 객체 출력) <c:set var="map" value="<%=map %>"/> // var str1 = (jstl 함수로 출력) <c:set var="str1" value="jstlfn"/>
값을 출력할 때 (보통, EL문을 좀 더 많이 쓴다.)
<c:out> </c:out>
조건제어 자바의 switch-case문과 유사
<c:choose>
// 조건제어 _case문
<c:when> </c:when>
// 조건제어 _default문
<c:otherwise> </c:otherwise>
</c:choose>
<c:forEach> </c:forEach>// for (i=0; i<10; i++;) { i };
<c:forEach var="i" begin="0" end="10" step="1">
${i }
</c:forEach>
<c:set var="arData" value="<%= new int[] {10, 20, 30, 40, 50} %>"/>
<c:forEach var="i" begin="0" end="4" step="1">
${arData[i] }
</c:forEach>
// data 변수에 arData 배열을 반복적으로 할당
// for ( data : arData) { data };
<c:forEach var="data" items="${arData }">
${data}
</c:forEach>
taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"라이브러리를 선언하여 jstl function을 사용한다.${fn:length() } : 해당 객체의 크기나 데이터의 길이값${fn:toUpperCase() } : 문자열을 대문자로 변환${fn:toLowerCase() } : 문자열을 소문자로 변환${fn:substring(변수,첫번째,두번째인덱스) } : (변수,첫번째,두번째인덱스)를 잘라오기${fn:replace(str1, src, dest) } : 문자열 대체하기 : (변수, 문자열1, 문자열2) : 문자열1을 문자열2로 대체