티스토리 뷰

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


'프로그래밍 > JSP' 카테고리의 다른 글

JSP  (0) 2018.02.24
JSTL  (0) 2018.02.21
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday