JSTL Tag (1)

JSTL Tag는 custom tag 중 자주 사용되고 유용한 것만을 모아 만들 라이브러리이다.
1. c:set
JSP에서 사용될 변수를 설정한다.
<c:set var="변수명" value="값" scope="영역"/>
<c:set var="변수명" scope="영역">값</c:set>
var : 변수의 이름
value : 변수에 담을 값
scope : 저장영역(page,request,session,application) - 기본값은 page
속성을 삭제할 경우에는
<c:remove var="변수명" scope="영역"/>
2. c:if
조건에 따라 내부 코드를 수행한다. 자바의 if 문과 비슷하나, c:if 태그에는 else 가 없다.
<c:if test="조건"></c:if>
test의 조건이 참이면 태그 몸체의 내용이 실행되며, test는 기본적으로 참/거짓만을 받을 수 있다.
test에는 EL 태그만 사용 가능하다. var 속성을 활용하면 결과를 따로 저장할 수 있다.
<c:if test="${myId eq 'admin'}" var="result">
3. c:choose
자바의 switch 문과 비슷하며, c:when 태그의 test 값이 true 면 태그 몸체를 수행한다.
c:otherwise는 어떠한 c:when 에도 해당되지 않으면 실행된다.
${param.num}
<c:choose>
<c:when test="${param.num == '0'}">
<!-- <input type="text" name="num"/> 타입이 텍스트라 숫자에 '0' 씌워놓음 -->
<h3>파라메터 값은 0 입니다.</h3>
</c:when>
<c:when test="${param.num eq '1'}">
<h3>파라메터 값은 1 입니다.</h3>
</c:when>
<c:when test="${param.num == '2'}">
<h3>파라메터 값은 2 입니다.</h3>
</c:when>
<c:otherwise>
<h3>파라메터 값은 0~2 사이를 넣어주세요.</h3>
</c:otherwise>
</c:choose>
4. c:forEach
일반적인 for 문과 비슷하며, 주로 array나 collection, map 등의 값을 꺼낼 때 사용한다.
<c:forEach>var="변수" items="덩어리" begin="시작값" end="끝값" step="증가정도"</c:forEach>
items에는 배열이나 컬렉션 등의 덩어리가 들어가며, var 에는 덩어리에서 꺼낸 값을 담는다.(향상된 for 문과 비슷)
5. c:url
URL을 생성해주는 기능을 하며, param 태그를 이용해 url에 파라미터를 추가할 수 있다.
var 속성을 이용해 생성된 url 을 저장할 수 있으며 절대경로(절대 바뀌지 않음)와 상대경로(위치에 따라 계속 바뀜)를 입력할 때 사용된다.
<c:url value="url" var="url 저장할 이름"></c:url>
<c:url value="http://search.daum.net/search" var="searchUrl">
<c:param name="w" value="blog"/>
<c:param name="q" value="독도"/>
</c:url>
상대경로에서는 c:url 과 일반 url 의 차이가 없으며, 절대경로에서 프로젝트명 포함 여부가 다르다.
6. c:forTokens
JAVA의 Tokenizer(split 같은거)와 같은 기능을 제공한다.
<c:forTokens>var="변수명" items="대상" delims="구분자"</c:forTokens>
<c:set var="text" value="축구,야구,농구,배구,수영,골프"/>
<c:forTokens items="${text}" delims="," var="sports">
${sports}
</c:forTokens>
items에 있는 문자열을 delis를 기준으로 쪼개서 var에 선언된 변수에 넣는다.
7. c:import
action tag의 import, 스크립틀릿의 inclue와 같다. 허용된 경우에 한하여 외부 사이트의 페이지도 불러올 수 있다.
<c:import url="가져올 페이지" var="변수명" scope="저장영역" charEncoding="캐릭터셋"/>
<c:import url="https://www.youtube.com/results">
<c:param name="search_query" value="jsp"/>
</c:import>
8. c:redirect
특정 페이지 또는 특정 주소로 이동시켜준다. redirect가 실행되면 아래의 코드들은 실행될 수 없다.(이동하기 때문에)
redirect는 두 번 사용할 수 없다.
<!-- 절대경로 입력시 context 를 포함한다. -->
<%-- <c:redirect url="/index.jsp"/> --%>
<!-- https://www.youtube.com/results?search_query=jsp -->
<c:redirect url="https://www.youtube.com/results">
<c:param name="search_query" value="spring framework"/>
</c:redirect>