Formoat's Open Blog
JSTL - 코어 태그 본문
코어 태그
- JSTL 태그 라이브러리 중 가장 많이 사용되는 태그로 변수 선언, 제어문, 페이지 이동 등 다양한 기능을 제공한다.
접두어 : c
URL : http://java.sun.com/jsp/jstl/core
1. <c : set>, <c : remove>
- JSP의 setAttribute(), removeAttribute()와 같은 역할을 한다.
- 변수 선언/제거 또는 자바빈 객체의 프로퍼티값 설정 가능
<option>
var = "변수명"
value = "변수에 저장할 값"
target = "자바빈 객체"
property = "자바빈 객체의 필드명"
socpe = "영역범위"
<!-- scope 속성의 기본값은 page이다. -->
<c:set var="변수명" value="할당 값" scope="영역범위 page|request|session|application" />
<!-- set -->
<c:set var="str" value="hello" scope="request"/>
<c:set var="member" value="<%=new MemberVO()%>" />
<c:set target="${member }" property="name" value="홍길동" />
<!-- remove -->
<c:remove var="str" scope="request" />
<c:remove var="member" />
2. <c : out>
- JSP의 표현식 '<%= ... %>' 또는 EL 표현언어 '${ ... }' 와 같은 역할을 한다.
- 옵션을 통해 html태그도 사용할 수 있다.
<option>
var = "변수명"
default = "기본값"
escapeXML = "true | false" // html태그 무시여부
<!-- html태그를 포함한 문자열을 포함한 변수선언 -->
<c:set var="str" value="<h2>반가워요</h2>"/>
<!-- true일경우 태그도 문자열로 인식 false일경우 태그로 인식 -->
<c:out value="${str }" escapeXml="false" />
<c:out value="${result }" default="result가 없을 경우 출력"/>
<c:out value="Hello World" />
<!-- escapeXml 속성의 기본값은 true이다.-->
3. <c : catch>
- 예외처리 태그로 태그의 body내에서 예외 발생시 실행 중인 코드를 중지하고 예외처리
<option>
var = "에러메시지를 저장할 변수명"
<!-- 10을 0으로 나누었기 때문에 ArithmeticException 예외발생 -->
<c:catch var="exception">
<%= 10/0 %>
</c:catch>
Error Message : ${exception }
4. <c : if>, <c : choose>, <c : when>, <c : otherwise>
- 조건문으로 if 태그는 if문과 같고, choose, when, otherwise 태그는 switch문과 같다.
- if 태그의 경우 else 태그가 없어 else문을 사용할 수 없다.
- 여러 중첩 조건이 있을 경우 choose, when, otherwise 태그를 대체하여 많이 사용한다.
- 여러개의 when태그와 하나의 otherwise태그로 이루어진다.
<option>
test = "조건식"
var = "조건결과를 저장할 변수명"
scope = "영역범위"
<!-- if 태그 -->
<c:if test="${1 == 1 }"> <!-- 해당 body는 조건이 true이기 때문에 실행된다. -->
<p>body</p>
</c:if>
<c:if test="${1 == 0 }"> <!-- 해당 body는 조건이 false이기 때문에 실행되지 않는다. -->
<p>body</p>
</c:if>
<!-- choose, when, otherwise 태그 -->
<c:set var="var" value="10" />
<c:choose>
<c:when test="${var == 5 }">
var는 5이다.
</c:when>
<c:when test="${var == 10 }">
var는 10이다.
</c:when>
<c:otherwise>
var는 5도 10도 아니다.
</c:otherwise>
</c:choose>
5. <c : forEach>, <c : forTokens>
- 컬렉션 또는 배열에서 요소를 하나씩 가져와 반복해서 실행할 때 사용
- 토큰의 경우 구분자가 포함된 문자열을 구분자를 통해 분리할 때 사용
<option>
var = "현재 아이템의 변수명"
items = "반복 데이터가 있는 아이템"
begin = "시작점 (기본값 0)"
end = "끝점"
step = "증가값 (기본값 1)"
delims = "구분자"
varStatus = "루프 상태 정보를 가진 변수"
<varStatus>
current : 1을 기준으로 현재의 인덱스값
index : 0을 기준으로 현재의 인덱스값
count : 루프 카운팅 횟수
first : 현재 루프가 처음인지 여부
last : 현재 루프가 마지막인지 여부
begin : 현재의 루프문이 설정한 시작 값
end : 현재의 루프문이 설정한 끝 값
step : 현재의 루프문이 설정한 증가값
<!-- forEach -->
<!-- 정수의 범위내 반복 -->
<c:forEach var="arrInt" begin="1" end="10" varStatus="status">
${status.count }:
${arrInt }<br>
</c:forEach>
<!-- 컬렉션의 범위내 반복 -->
<%
java.util.List<String> list = java.util.Arrays.asList("kim","lee","park","song");
request.setAttribute("list", list);
%>
<c:forEach items="${list }" var="str" varStatus="status">
${status.count }:
${str }<br>
</c:forEach>
<!-- forTokens -->
<c:forTokens items="kim,lee,park,song,choi" delims="," var="str">
<p><c:out value="${str }" /></p>
</c:forTokens>
6. <c : param>
- 페이지 첨부, 이동 시 데이터를 같이 첨삭해 보낼 때 사용된다.
<option>
name = "키"
value = "값"
7. <c : url>, <c : import>, <c: redirect>
- URL 주소를 변수에 담아 사용할 수 있다. (a, img 태그 등 사용)
- 페이지 첨부, 페이지 이동
- <c : param> 태그를 이용해 GET방식으로 데이터를 첨삭해 보낼 수 있다.
<option>
var = "생성한 url을 저장할 변수명"
value = "생성할 URL"
scope = "영역범위"
url = "URL 주소"
<!-- url, param -->
<c:url var="test" value="/test.jsp" >
<c:param name="data1" value="1000"/>
<c:param name="data2" value="2000"/>
</c:url>
<!-- 생성한 url을 이용해 a태그 이동 -->
<a href="${test }">GET방식으로 데이터를 첨삭해 이동</a>
<!-- import, redirect (param 사용가능) -->
<c:import url="현재 페이지에 첨부할 페이지 URL주소" />
<c:redirect url="이동할 URL주소" />
'Java > JSP & Servlet' 카테고리의 다른 글
JSTL - 함수 태그 (0) | 2019.09.07 |
---|---|
JSTL - 포맷 태그 (0) | 2019.09.07 |
JSTL(JSP Standard Tag Library) (0) | 2019.09.06 |
EL(Expression Language) 표현 언어 (0) | 2019.09.05 |
JSP (Java Server Page) (0) | 2019.09.04 |