jstl 이란 jsq 표준 라이브러리이다. 매번 자바 언어를 html에서 사용하기 위해 <% %>를 사용하기 귀찮고 오류가 발생할 확률이 높기 때문에 개발자들은 이러한 라이브러리를 만들었다.
시간, 날짜, 숫자의 포멧, 문자열 가공 등의 처리에서 비즈니스 로직과 프리젠테이션 로직을 분리 할 수 있으며 EL태그를 사용해서 사용한다.
JSTL은 내장 라이브러리가 아니기 때문에 사용하기 위해서는 외부에서 다운로드를 받아야한다.
이 사이트에서 가장 많이 다운로드 된 프로그램을 다운로드 받으면 된다.
(잘 모르겠으면 다운로드가 많은 순!!)
다운받은 jar 파일을 이 위치에 넣어주면된다
외부 라이브러리 파일은 모두 이 위치에 넣어주면된다.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
taglib을 사용하기 전 이렇게 생성 맨 위에 지시자를 생성을 해줘야한다.
이 코드는 하나의 문자(c)를 정해서 jstl을 사용하겠다고 알려주는 명령어 이고, prefix는 이제 밑에서 우리가 custom한 태그를 쓸 건데 기호를 정해서 해당 라이브러리를 사용하겠다는 뜻이다.
태그 사용법은 그다지 어렵지 않다.
<c:set var="a" value="10"></c:set>
<c:set var="a" value="10"/>
c:set을 사용하여 변수를 선언하겠다는 명령어를 작성하고 그 뒤에 var를 사용하여 변수 이름, value를 사용하여 변수의 값을 할당한다.
태그를 감싸기 전 / 를 사용하면 홀 태그로 사용 가능하기 때문에, 위의 코드와 아래의 코드는 동일하다.
<c:out value="${a}"></c:out>
<c:if test="${a%2==0}">
<c:out value="a는 짝수"/>
</c:if>
<c:if test="${a%2==1}">
<c:out value="a는 홀수"></c:out>
</c:if>
<c:set var="b" value="11"></c:set>
<c:out value="${b}"></c:out>
<hr>
<c:choose>
<c:when test="${b%2==0}">
<c:out value="b는 짝수"></c:out>
</c:when>
<c:otherwise>
<c:out value="b는 홀수"></c:out>
</c:otherwise>
</c:choose>
약간 if와 else느낌이다.
5.반복문
<c:forEach var="i" begin="1" end="5">
<c:out value="${i}"></c:out>
</c:forEach>
이렇게 하면 기본적인 문법을 간단하게 사용 할 수 있다.
더 나아가 함수까지 사용할 수 있는데,
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
이 코드를 작성해줘야한다. (맨뒤 functions)
<c:set var="team" value="${fn:split('박세호,노은평,장준휴,호아이티,주선우', ',')}"></c:set>
<c:forEach var="member" items="${team}">
<c:out value="${member}"></c:out>
</c:forEach>
<hr>
<c:out value="${team[1]}"></c:out>
배열답게 인덱싱도 가능하다
<c:out value="${fn:length(team)}"></c:out>
<c:out value="${fn:length('장준휴입니다리')}"></c:out>