Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
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 31
Tags more
Archives
Today
Total
관리 메뉴

Formoat's Open Blog

JSTL - 코어 태그 본문

Java/JSP & Servlet

JSTL - 코어 태그

snd-snd 2019. 9. 6. 15:28

코어 태그

 - 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
Comments