[JSP] JSTL - c 태그 (Core Tags)
앎/web 2014. 3. 25. 16:10 |JSTL Core Tags
JSP의 시작 부분에 taglib 정의를 추가한다.
1 | <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> |
<c:set> Tag
JSP의 setAttribute()와 같은 역할
<c:set var="변수명"
value="변수에 넣을 값"
property="자바빈 객체나 Map 객체 값을 설정할 프로퍼티 명"
scope="변수 공유 범위"/>
1 2 3 4 5 6 7 8 9 | < c:set var = "data1" value = "100" scope = "request" /> < c:set var = "data2" value = "200" scope = "session" /> < c:set var = "data3" value="<%=new int[] {1, 2, 3} %>" scope="request" /> < c:set var = "data4" value="<br/>< br />" scope="request" /> data1 : ${requestScope.data1} < br /> data2 : ${sessionScope.data2} < br /> data1 + data2 = ${requestScope.data1 + sessionScope.data2} < br /> data3 : ${requestScope.data3[0]}, ${ requestScope.data3[1]}, ${ requestScope.data3[2]} |
<c:remove> Tag
JSP의 removeAttribute()와 같은 역할
<c:remove var="변수명"
scope="변수 공유 범위" />
1 2 3 4 5 | < c:remove var = "data1" scope = "request" /> data1 : ${requestScope.data1} < br /> data2 : ${sessionScope.data2} < br /> data1 + data2 = ${requestScope.data1 + sessionScope.data2} |
<c:out> Tag
'<%= ... >' 와 같다. JSP의 표현식을 대체한다.
<c:out var="변수명"
default="기본값"
escapeXML="true / false" />
escapeXML 속성은 HTML 태그를 해석할지 결정한다.
true일 경우, 변수 값에 포함된 < > Q ' " 문자를 실제 문자로 출력한다. 생략 시 default로 true.
1 2 | < c:out value = "${sessionScope.data2}" /> < br /> < c:out value = "${requestScope.data4}" escapeXml = "true" /> |
<c:catch> Tag
body에서 실행되는 코드의 예외를 처리
<c:catch var="에러 메세지가 포함될 변수명" />
1 2 3 4 | < c:catch var = "ex" > <%= 1/0 %> </ c:catch > < br /> Error Msg: ${ex} < br /> |
<c:if> Tag
조건문에 대응
<c:if test="조건 판별식"
var="변수명"
scope="변수 공유 범위" />
1 2 3 | < c:if test = "${requestScope.data1 == null}" > data1 was removed.... </ c:if > |
<c:choose> Tag
switch문과 동일
여러 개의 when 태그와 하나의 otherwise 태그를 가진다.
<c:chose>
<c:when> .... </c:when>
<c:when> .... </c:when>
<c:otherwise> .... </c:otherwise>
</c:choose>
<c:when> Tag
choose 태그의 서브 태그
choose 태그 내에서 여러 번 사용할 수 있다
<c:when test="조건 판별식" />
<c:otherwise> Tag
choose 태그의 서브 태그
choose 태그 내에서 한 번만 사용할 수 있다
<c:otherwise> .... </c:otherwise>
1 2 3 4 5 6 7 8 9 10 11 12 13 | < c:choose > < c:when test = "${data1 == 100}" > data1의 데이터는 100 입니다. </ c:when > < c:when test = "${data1 == null}" > data1의 데이터는 null 입니다. </ c:when > < c:otherwise > data1의 데이터는 어느 값도 아닙니다. </ c:otherwise > </ c:choose > |
<c:forEach> Tag
객체 전체에 걸쳐 반복 실행에 사용
<c:forEach var="현재 아이템의 변수 명"
items="반복 데이터가 있는 아이템 Collection 명"
begin="시작 값. 기본 값은 0"
end="종료 값"
step="증가 값"
varStatus="반복 상태 값을 지닌 변수" />
varStatus는 forEach의 상태를 알 수 있는 값이 들어 있다.
${변수.current} 현재의 인덱스
${변수.index} 0부터의 인덱스
${변수.count} 1부터의 인덱스
${변수.first} 현재 루프가 처음인지 확인
${변수.last} 현재 루프가 마지막인지 확인
${변수.begin} forEach문의 시작 값
${변수.end} forEach문의 끝 값
${변수.step} forEach문의 증가 값
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | < c:forEach var = "i" begin = "0" end = "9" > ${i+1} </ c:forEach > < br /> < c:forEach var = "i" items = "${requestScope.data3}" begin = "0" end = "2" > ${i} </ c:forEach > < br /> < c:forEach var = "i" items = "${requestScope.data3}" begin = "0" end = "2" step = "1" varStatus = "status" > --------------------------------- < br /> ${i} < br /> --------------------------------- < br /> 현재 인덱스 ${status.current} < br /> 0부터의 인덱스 ${status.index} < br /> 1부터의 인덱스 ${status.count} < br /> 현재 루프가 처음인지 확인 ${status.first} < br /> 현재 루프가 마지막인지 확인 ${status.last} < br /> forEach문의 시작 값 ${status.begin} < br /> forEach문의 끝 값 ${status.end} < br /> forEach문의 증가 값 ${status.step} < br /> < br /> </ c:forEach > |
<c:forTokens> Tag
문자열을 구분자(delimiter)로 분할
<c:forTokens var="현재 아이템의 변수 명"
items="반복 데이터가 있는 아이템 Collection 명"
delims="구분자. 여러 개 지정 가능"
begin="시작 값. 기본 값은 0"
end="종료 값"
step="증가 값"
varStatus="반복 상태 값을 지닌 변수" />
1 2 3 4 | < c:set var = "data5" value = "A, B. C, D. E, F" scope = "request" /> < c:forTokens var = "ddd" items = "${requestScope.data5}" delims = ",." > < c:out value = "${ddd}" />< br > </ c:forTokens > |
<c:url> Tag
url 생성
<c:url var="생성한 URL이 저장될 변수 명"
value="생성할 URL"
scope="변수 공유 범위" />
1 2 3 | < a href="<c:url value = '/TEST_EL_1.jsp' />"> View TEST_EL_1 </ a > |
<c:param> Tag
url 생성 시 파라미터 추가
<c:param name="파라미터 명"
value="값"/>
1 2 3 4 5 6 7 | < c:url value = "/TEST_EL_2.jsp" var = "paramTest" > < c:param name = "data1" value = "1000" /> < c:param name = "data2" value = "2000" /> </ c:url > < a href = "${paramTest}" > View TEST_EL_2 with data1(1000), data2(2000) </ a > |
<c:import> Tag
<c:import url="첨부할 URL" />
import 태그 내에 param 태그도 사용할 수 있다.
var과 scope 속성도 있는데 var은 불러들인 페이지를 바로 출력하지 않고 String 형 변수에 넣어두기 위해 사용한다.
이때 이 변수의 scope를 지정할 수 있다.
1 2 3 4 5 6 | < c:import url = "/TEST_EL_1.jsp" /> < c:import url = "/TEST_EL_2.jsp" > < c:param name = "data1" value = "10000" /> < c:param name = "data2" value = "20000" /> </ c:import > |
<c:redirect> Tag
respond.sendRedirect()와 동일
<c:redirect url="이동할 URL" />
예제) JSTL Core 태그 사용
'앎 > web' 카테고리의 다른 글
[JSP] JSTL - sql 태그 (SQL Tags) (0) | 2014.03.25 |
---|---|
[JSP] JSTL - fmt 태그 (Formatting Tags) (0) | 2014.03.25 |
[JSP] JSTL (JavaServer Pages Standard Tag Library) (0) | 2014.03.25 |
[Applet] '보안 설정으로 차단된 응용 프로그램' 오류 발생 시 처리 (0) | 2014.03.19 |
[JSP] 액션 (JSP Actions) - plugin, params, param (0) | 2014.03.18 |