JSP에서 자주,공통적으로 사용되는 자바 코드를 쉽고 , 표기법으로 간단히 할 수 있도록 태그화 하여 표준으로 제공하는 것
( if , for , Scope 변수 선언 , 데이터파싱(데이터 변환) )
해당 JSP의 최상단에 < % @ % > 지시어를 이용해 선언해야한다.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
prefix : 접두사 , 다른 태그와 구별하기 위해 사용한다
(태그 앞에 붙은 태그명.)
uri(Uniform Resource Locator) : 네트워크 상에서 자원을 구별하는 식별자 ( 자원을 구분하는 유일한 주소)
url(Uniform Resource Identifier) : 인터넷에서 특정 자원 위치를 지정(주소)
구별을 잘해야 한다 URI와 URL은 다른거다.
1. 변수 선언(C:Set)
C : SET 태그
<c:set var="num" value="100"/>
<c:set var="num" value="200" scope="request" />
2. 변수 삭제(C:remove)
C : remove
3. 변수 삭제(C:if)
조건문을 사용할 수 있는 태그
if문만 가능하고 else if ,else등은 불가능(else는 존재하지 않음)
test: 조건을 작성하는 속성 단, %{EL}로만 작성할 수 있다
<c:set var="temp" value="30"/>
<c:if test="${temp>20 }">
<!-- test에 작성된 조건이 참일때만 화면에 출력 -->
temp는 20보다 크다
</c:if>
<!-- else구문이 없어 반대되는 조건을 별도로 작성해야 한다. -->
<c:if test="${temp<=20}">
temp는 20보다 작거나 같다.
</c:if>
4. 조건문 if~else if~else
( c:choose , c:when , c:otherwise)
<c:set var="temp2" value="9"/>
<c:choose>
<c:when test="${temp2>10}">
temp2가 10보다 큼
</c:when>
<c:when test="${temp2<10}">
temp2가 10보다 작다
</c:when>
<c:otherwise >
temp2는 10이다
</c:otherwise>
</c:choose>
5. 반복문 for / for(향상된)
( C : forEach )
- var : 현재 반복 횟수에 해당하는 변수 (==int i 같은 느낌)
- begin : 반복 시작 값
- end : 반복 종료 값
- step : 반복할때마다 증가할 값(증감식) , 미작성 시 기본값 1
- varStatus : 현재 반복에 해당되는 상태 정보
- 제공되는 값
1) current : 현재 반복 횟수 또는 현재 접근 중인 객체
2) index : 현재 객체가 몇 번째 인덱스인지 반환 (0부터 시작)
3) count : 현재 반복문이 몇바퀴 반복 중인지 반환 (1부터 시작)
4) first : 첫 번째 반복일 경우 true 반환
5) last : 마지막 반복일 경우 true 반환
<table border="1">
<c:forEach var="i" begin="1" end="10" step="1">
<tr>
<th>${i}</th>
<td>${i}번재 게시글입니다.</td>
</tr>
</c:forEach>
</table>
<h2>향상된 for문 사용</h2>
<ul>
<c:forEach var="str" items="${paramValues.lang }" varStatus="vs">
<li>
<c:if test="${vs.first}">
<!-- 첫번째 반복인 경우 -->
<span style ="color:red"> 첫번째 </span>
</c:if>
<c:if test="${vs.last}">
<!-- 마지막 반복인 경우 -->
<span style ="color:blue"> 마지막 </span>
</c:if>
</li>
</c:forEach>
</ul>
EL로 Parameter 얻어오는 방법.
- ${param.name속성}
- 단일 파라미터를 얻어오는 경우
- 여러개의 피라미터가 있는 경우 0번째 값만 얻어온다
- ${paramValue.name속성값}
${paramValues.lang[0]} <br> ${paramValues.lang[1]} <br> ${paramValues.lang[2]} <br>