티스토리 뷰
1. Core Tag의 이해
- JSTL 태그 라이브러리 중에 가장 많이 사용하는 태그이다.
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>로 선언을 해줘야 사용할 수 있다.
1.1 <c:set/>, <c:remove/>
- 변수의 선언 및 제거 역할을 한다.
- set : JSP의 setAttribute()와 같은 역할.
- remove : JSP의 removeAttribute()와 같은 역활
<c:set/>, <c:remove/> Syntax 및 예
<!-- scope 속성은 선택적이며 page로 기본 설정되어 있다. --> <c:set var="변수명" value="할당된 값" scope="변수의 유효 범위 page|request|session|application" /> <!-- 간단 사용 예 --> <c:set var="country" value="Korea" /> <c:set var="intArray" value="<%=new int[] {1,2,3,4,5} %>" /> <c:remove var="country" />
1.2 <c:out/>
- 변수의 출력 기능을 한다. JSP의 표현식(<%= %>)을 대체하는 기능이다.
- escapeXML값이 true일 경우 값 중에 포함된 <,>,&,'," 문자들을 각각 <, >, &, ', "로 변환하여 출력 한다.
- default 속성과 excapeXML 속성을 사용하지 않는 경우 EL형식으로 많이 사용한다.
<c:out/> Syntax 및 예
<!-- Syntax --> <c:out var="변수명" default="기본값" escapeXML="true|false" /> <!-- 간단 사용 예 --> <p><c:out value="${country}" default="Korea" escapeXml="true"/></p> <p>${country}</p> <p>${intArray[0]}</p>
1.3 <c:if/>
- 조건문으로 if문과 동일하지만 else 구문이 없다.
- 테스트의 결과를 var와 scope 속성을 통해 범위 변수로 할당할 수 있다.
- 이 기능은 테스트 비용이 비쌀 경우 유용하다.
<c:if/> Syntax 및 예
<!-- Syntax --> <c:if test="expression" var="name" scope="scope"> body content </c:if> <!-- 간단 사용 예 --> <c:set var="login" value="true" /> <c:if test="${!login}"> <p><a href="/login.ok">로그인</a></p></c:if> <c:if test="${login}"> <p><a href="/logout.ok">로그아웃</a></p></c:if> <!-- 아래 예제와 같이 null 비교를 하지 않고 empty 비교를 하면 null과 ""를 동시에 체크할 수 있다. --> <c:if test="${!empty country}"><p><b>${country}</b></p></c:if>
1.4 <c:choose/>, <c:when/>, <c:otherwise/>
- java의 swith문과 비슷하지만 문자열 비교도 가능하다.
- <c:if/>문에 else 구문이 없기 때문에 else의 대체 기능으로 많이 사용한다
<c:choose/>, <c:when/>, <c:otherwise/> Syntax 및 예
<!-- Syntax --> <c:choose> <c:when test="expression"> body content </c:when> ... <c:otherwise> body content </c:otherwise> </c:choose> <!-- 간단 사용 예 --> <c:choose> <c:when test="${login}"> <p><a href="/logout.ok">로그아웃</a></p> </c:when> <c:otherwise> <p><a href="/login.ok">로그인</a></p> </c:otherwise> </c:choose>
1.5 <c:forEach/>
- 반복문을 실행할 때 사용 한다.
- 정수 범위내의 반복(이를 테면, 자바의 for 문)과 컬렉션내의 반복(자바의 Iterator와 Enumeration 클래스)을 지원한다.
- begin : 시작값 , end : 마지막값 , step : 증가값, var 변수, items:컬렉션 객체, varStatus : 추가속성값
<c:forEach/> Syntax 및 예
<!-- 정수 범위내의 반복 Syntax --> <c:forEach var="name" varStatus="name" begin="expression" end="expression" step="expression"> body content </c:forEach> <!-- 컬렉션 범위내의 반복 Syntax --> <c:forEach var="name" items="expression" varStatus="name" begin="expression" end="expression " step="expression"> body content </c:forEach> <!-- forEach 정수 범위내의 반복 --> <c:forEach var="i" begin="0" end="10" step="2" varStatus="x"> <p> i = ${i}, i*i = ${i * i} <c:if test="${x.last}">, last = ${i}</c:if> </p> </c:forEach> <!-- forEach 컬렉션 범위내의 반복 --> <% java.util.List list = new java.util.ArrayList(); java.util.Map map = new java.util.HashMap(); map.put("color","red"); list.add(map); map = new java.util.HashMap(); map.put("color","blue"); list.add(map); map = new java.util.HashMap(); map.put("color","green"); list.add(map); request.setAttribute("list", list); %> <c:forEach var="map" items="${list}" varStatus="x"> <p> map(${x.index}) = ${map.color} </p> </c:forEach>
- LoopTagStatus 객체의 속성
속성 메소드 설명 current getCurrent() 현재 아이템 index getIndex() 제로 기반(zero-based) 인덱스 값 count getCount() 1 기반(one-based) 인덱스 값 first isFirst() 첫 번째 값 여부 last isLast() 마지막 값 여부 begin getBegin() begin 속성의 값 end getEnd() end 속성의 값 step getStep() step 속성의 값
반응형
'FULL STACK > JSP&SERVLET' 카테고리의 다른 글
JSTL Format Tag (0) | 2019.01.22 |
---|---|
JSTL 정의 (0) | 2019.01.21 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Javscript
- fontawesome 4.7 cdn
- FontAwesome
- 반응형
- JavaScript
- getBoundingClientRect
- jQuery
- JS
- jQuery CDN
- Slick
- html
- defer
- Sliding
- css
- fontawesome 4.7
- scroll
- js scroll
- sliding scroll
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함