core 라이브러리는 변수선언 등의 EL 지원과 흐름을 제어하고, URL을 관리하는 기능을 제공한다.
지시어
<%@ taglib prefix="c" uri=http://java.sun.com/jsp/jstl/core %>
기능 |
태그 |
설명 |
EL 지원 |
<c:set> |
변수에 값을 설정 |
<c:remove> |
변수에 설정된 값을 제거 | |
<c:out> |
표현식 대체, JspWriter에 데이터 출력 | |
<c:catch> |
예외처리에 사용 | |
흐름제어 |
<c:if> |
조건 처리 |
<c:choose> |
여러 조건에 따른 처리 | |
<c:forEach> |
반복처리 | |
<c:forTokens> |
구분자로 분리된 각 토큰을 처리 | |
URL 관리 |
<c:import> |
외부자원 포함 |
<c:reditect> |
지정한 경로로 이동 | |
<c:url> |
url 재작성 |
* JSTL 라이브러리의 태그에 표기하는 [scope="속성"]의 "속성"은 "page, request, session, application" 영역의 하나이며, 기본값은 page이다.
- <c:set> 태그
표기)
<c:set var="변수명" value="값" [scope="{page|request|session|application}"] />
<c:set var="변수명" [scope="{page|request|session|application}"]>값</c:set>
<c:set value="값" target="target" property="프로퍼티명" />
<c:set value="값" target="target" property="프로퍼티명">값</c:set>
사용예)
<c:set var="id" value="<@= id %>" scope="session">
- <c:out> 태그
웹브라우저에 값을 출력한다. value 값으로 문자열이나 EL을 사용하며, scope 기본값은 page이다.
JSP 표현식(<%= %>)과 같은 역활을 한다.
표기)
<c:out value="값" excapeXml={true|false} [default="기본값"] />
<c:out value="값" excapeXml={true|false} >기본값</c:out>
사용예)
<c:out value="${id}" default="${guest}" />
* excapeXml이 true이면 다음과 같이 값이 변경된다.
< -> ⁢ > -> > & -> & ' -> ' " -> "
- <c:remove> 태그
변수의 값을 제거하며, scope의 기본값은 page이다. JSP의 removeAttribute()와 같은 역할을 한다.
표기)
<c:remove var="변수명" [scope="속성"] />
사용예)
<c:remove var="id" scope="page" />
- <c:catch> 태그
예외처리에 사용하며, JAVA의 try ~ catch와 같은 역할을 한다.
표기)
<c:catch [var="변수명"]>actions</c:catch>
사용예)
<c:catch var="errmsg"> <%= 1/0 %> </c:catch>
<c:out value="${errmsg}" />
- <c:if> 태그
if문과 동일하며 test 속성에 조건을 기술한다.
표기)
<c:if test="조건" var="변수명" [scope="속성"] /> : 조건에 따라 true 혹은 false가 변수명에 저장
<c:if test="조건" [var="변수명"] [scope="속성"] >값</c:if> : true일 경우 값에 기술된 내용 실행
사용예)
<c:if test="${6+3 == 9}">6 + 3 = 9 </c:if>
- <c:choose> 태그
사용예)
<c:choose>
<c:when test="${id == 'amdin'}">관리자입니다.</c:when>
<c:when test="${id == 'guest'}">손님입니다.</c:when>
<c:when test="${empty id}">로그인하세요.</c:when>
<c:otherwise>일반회원입니다.</c:otherwise>
</c:choose>
- <c:forEach> 태그
표기)
<c:forEach [var="변수명"] items="객체명" [varStatus="상태변수명"] [begin="시작값"]
[end="최종값"] [step="단계값"]>
body content
</c:forEach>
<c:forEach [var="변수명"] [varStatus="상태변수명"] begin="시작값" end="최종값"
[step="단계값"]>
body content
</c:forEach>
사용예)
<c:forEach var="ck" items="${paramValues.s2}">
- ${ck}<br>
</c:forEach>
*varStatus 속성
index : items에 지정한 집합체의 현재 반복 중인 항목의 index를 알려준다. 0부터 순서가 부여된다.
절대적 위치를 표시한다.
count : 루핑을 돌 때 현재 몇번째를 반복중인지 알려준다. 1부터 순서가 부여된다.
first : 현재 루프가 처음인지 여부를 알려준다. 첫번째 일경우에는 true를 아니면 false를 반환한다.
last : 현재 루프가 마지막인지 여부를 알려준다. 첫번째 일경우에는 true를 아니면 false를 반환한다.
- <c:forTokens> 태그
"java.util.StringTokenizer"를 이요하여 구분자에 맞추어 반복 처리한다.
표기)
<c:forTokens items="stringOfTokens" delims="delimiters" [var="변수명"]
[varStatus="상태변수명"] [begin="시작값"] [end="종료값"] [step="step"]>
body contents
</c:forTokens>
사용예)
<c:forTokens var="one" items="서울, 인천, 대전, 대구, 부산, 광주" delims=", " varStatus="sts">
<c:out value="${sts.count}. ${one}" /><br>
</c:forTokens>
=> 1. 서울
2. 인천
3. 대전
4. 대구
5. 부산
6. 광주
- <c:import> 태그 : JSP의 <jsp:include> 태그처럼 사용할 수 있다.
표기)
<c:import url="url" [context="context"] [var="변수"] [scope="속성"] [charEncoding="인코딩"]>
Body Contents <c:param> 서브태그
</c:import>
사용예)
<c:import url="http://localhost:8080/helloworld.jsp" var="data" />
${data}
- <c:redirect> 태그
지정한 페이지로 이동할 때 사용한다. response.sendRedirect()를 대체하는 태그이다.
표기)
<c:redirect url="url" [context="컨텍스트"] />
<c:redirect url="url" [context="컨텍스트">
<c:param name="명" value="값" />
</c:redirect>
- <c:url> 태그
표기)
<c:url value="http://i.ebayimg.com/images/i/381129698667-0-1/s-l140.jpg" var="data"></c:url>
<img src="${data}">
'Web > JSP' 카테고리의 다른 글
JSP #15 Servlet에서 입력값 한글 지원 (0) | 2015.02.05 |
---|---|
JSP #14 Spring - 1 Spring Framework (0) | 2015.01.09 |
JSP #12 JSTL-1 (0) | 2015.01.05 |
JSP #11 EL-3 EL의 내장객체 (0) | 2015.01.02 |
JSP #10 EL-2 EL의 연산자 (0) | 2015.01.02 |