티스토리 뷰
Core 태그 라이브러리는 JSP 파일에서 Java 코드를 대체할 수 있는 대부분의 핵심 기능을 포함한다.
Core 태그 라이브러리를 사용하기 위해 디음과 같이 taglib 지시어를 사용한다.
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
기능 분류 |
태그 |
설명 |
변수 지원 |
set |
JSP에서 사용될 변수를 선언한다. |
remove |
설정한 변수를 제거한다. |
|
흐름 제어 |
if |
조건에 따라 내부 코드를 수행한다. |
chosse, when |
다중 조건을 처리할 때 사용한다. (switch~case) |
|
forEach |
컬렉션이나 Map의 각 항목을 처리할 때 (for) |
|
forTokens |
구분자로 분리 된 각각의 토큰을 처리할 때 사용한다. |
|
url 처리 |
import |
URL을 사용하여 다른 자원의 결과를 삽입한다. |
redirect |
지정한 경로로 리타이렉트 한다. |
|
url |
URL을 재작성한다. |
|
기타 태그 |
catch |
예외 처리에 사용한다. (try~catch) |
out |
화면으로 데이터를 출력할 때 사용한다. |
<c:set> : 변수를 생성하고 변수에 값을 저장할 때 사용한다.
var애트리뷰트에는 변수명을 지정하고 value 애트리뷰트에는 변수값을 지정한다. 표현식을 사용할 수 있다.
그리고 scope 애트리뷰트에는 변수가 생성될 영역을 지정한다.
디폴트 값은 page로 해당 웹 페이지 영역이고, request이면 요청 영역, session이면 세션 영역, application이면 애플리케이션 영역이 된다.
<c:set var="sessionVar" value="${3 + 1}" scope=”session” /> | cs |
<c:remove> : 생성된 변수를 삭제할 때 사용한다.
이때 삭제할 변수는 지정된 영역 안에 있어야 한다.
<c:remove var="sessionVar" scope=”session” /> | cs |
<c:if> : Java 언어의 if문과 마찬가지로 test 애트리뷰트에 지정된 표현식에서 조건을 테스트하여 참이면 어떤 작업을 수행 할 수 있게 한다.
<c:if test="${sessionScope.sessionVar = null}"> <c:set var="sessionVar" value="${3 + 1}" scope=”session” /> </c:if> | cs |
위의 코드에서는 세션 영역에 sessionVar 변수가 없을 때 sessionVar 변수를 생성한다.
불행하게도 Java 언어의 else에 해당하는 태그가 없다.
<c:chosse> : Java 언어의 else에 해당하는 태그가 없기 때문에 다중 조건 테스트를 하기 위해서는 <c:chosse>태그를 사용해야 한다. 이 태그는 Java 언어의 switch()...case 문과 유사하다.
각 조건은 <c:when> 태그를 사용한다. Java 언어의 default에 해당하는 태그는 <c:otherwise>이다.
세션 영역 변수 sessionVar의 값은
<c:choose> <c:when test="${sessionScope.sessionVar = 0}"> 0입니다. </c:when> <c:when test="${sessionScope.sessionVar = 1}"> 1입니다. </c:when> <c:otherwise> ${sessionScope.sessionVar} 입니다. </c:otherwise> </c:choose> | cs |
<c:forEach> : Java언어의 for문과 같이 반복적인 작업을 처리할 때 사용한다. for문과 마찬가지로 두 가지 버전이 있다.
1. for(int i=0;i<10;i++){}구문
<c:forEach var="i" begin=”0” end=”10”> <ul> <li>${cutomers[i].name}</li> <li>${cutomers[i].address}</li> <li>${cutomers[i].email}</li> </ul> </c:forEach> | cs |
2. for(Customer customer : customers ){} 구문 : 컬렉션 구문 사용 가능
<c:forEach>태그에 varStatus 애트리뷰트 값을 지정하면 각 항목의 상태 정보를 얻을 수 있다.
<c:foreach var="customer" items="${customer}" varstatus="status"> status.begin : ${status.begin} <br> status.end : ${status.end} <br> status.step : ${status.step} <br> </c:foreach> | cs |
각 상태 정보의 의미는 다음과 같다.
${status.begin} |
for문의 시작 값 |
${status.end} |
for문의 끝 값 |
${status.step} |
for문의 증가 값 |
${status.count} |
1부터의 순서 |
${status.current} |
현재 항목의 값 |
${status.index} |
0부터의 순서 |
${status.first} |
현재 항목이 시작인지 여부(true/false) |
${status.last} |
현재 항목이 마지막인지 여부(true/false) |
<c:forTokens> : <c:forEach> 태그와 유사하나 delims 애트리뷰트에는 항목을 구별할 수 있는 토근을 지정한다.
<ul> <c:forTokens items="일,이,삼,사,오" delims="," var="word"> <li>${word}</li> </c:forTokens> </ul> | cs |
- Total
- Today
- Yesterday