JSP에서 사용되는 조건문이나 반복문들을 모아놓은 표준 라이브러리, 스크립틀릿을 대체하여 태그만으로도 코드를 작성할 수 있으므로 코드가 훨씬 간결해져서 해석하기 편해진다.
JSTL 사용을 위해서는 별도의 라이브러리가 필요하다.
https://mvnrepository.com/artifact/javax.servlet/jstl/1.2
jar 파일 다운로드하여 lib 폴더에 넣어주고 아래 코드 추가해주기!
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
우선, 내가 느끼는 가장 큰 다른점
<c:choose>
if문의 경우 if, else if, else가 아닌
if문 하나인 경우(단일조건)에는 <c:if>로 사용가능하지만 else if, else 처럼 다른 경우의 수가 존재하는 경우 <c:choose> 내에 <c:when>(=if, else if) <c:otherwise>(=else)로 사용해야함. 또한 if문내의 test(조건) 속성에 공백이 삽입되면 무조건 false를 반환한다.
<c:forEach>
for문으로는 <c:forEach>태그를 사용하는데,
-> 일반 for문 [= for(int i=0; i<100; i+=1)]
<c:forEach var="변수명" begin="0(시작값)" end="100(마지막값)" step="1(증가값)"/>을 사용하는데
이때 step을 입력해주지 않으면 디폴트로 1이 설정됨.
-> 향상된 for문 [=for(int number : numbers)]
<c:forEach var="변수명" items="컬렉션 또는 배열" />
<fmt:formatDate>
가장 편리하겠다고 생각했던 태그는
날짜 포맷 및 타임존!!
<fmt:formatDate> 태그를 사용해서 날짜와 시간을 원하는 포맷으로 사용할 수 있음
체감상 자바에서 simpleDateFormat 사용하는 것보다 좀 더 간편하게 느껴졌다.
<c:import>
<%@ %>를 사용해서 jsp내에 다른 파일을 삽입해줬었다면 JSTL으로는
<c:import>를 통해 현재 위치에 외부파일을 삽입할 수 있다.
이렇게 외부파일 삽입하는 방법+1 추가로 알게되었다.
<%@ include file=""%>
<jsp:include page=""></jsp:include>
<c:import url=""></c:import>
<c:url>
지정한 경로와 매개변수를 이용해서 컨텍스트 루트를 포함한 URL을 생성할 수 있음
a 태그의 href 속성이나 form 태그의 action 속성에 사용이 가능하다.
다른 페이지로 이동하는 새로운 요청이므로 request 영역은 공유되지 않으며
쿼리스트링을 통해 값이 전달된다.
이 때, value 값은 태그 내의 속성값으로 지정할 수도 있고(param1) 태그 안에 내용을 직접 작성하여 지정할 수도 있음(param2) -> 아래코드 참조
<h4>url 태그로 링크걸기</h4>
<c:url value="Other.jsp" var="url">
<c:param name="user_param1" value="sky"/>
<c:param name="user_param2">kim</c:param>
</c:url>
<a href="${url}">Other.jsp 바로가기</a>
<ul>
<li>매개변수 1 : ${param.user_param1 }</li>
<li>매개변수 2 : ${param.user_param2 }</li>
</ul>

