JSTL

 

JSTL은 JSP 표준 태그 라이브러리(JSP Standard Tag Library)의 약어이다.

JSP에서는 JSTL을 통하여 연산이나 조건문, 반복문, DB를 편하게 처리할 수 있다.

JSP 지시자 태그 <%@ taglib %>로 선언 후 사용 가능하다.

 

 

JSTL 태그의 종류

 

1. Core ( prefix="c" ) 

 - 주요기능 : 반복문, 제어문, 페이징 처리 관련

 - 지시자 태그 : <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

2. Function ( prefix="fn" )

 - 주요기능 : collection 처리, String 처리

 - 지시자 태그 : <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/fuctions" %>

3. Formatting ( prefix="fmt" )

 - 주요기능 : 숫자, 날짜, 시간을 포맷팅 처리, 국제화 지원

 - 지시자 태그 : <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

4. DataBase ( prefix="sql" )

 - 주요기능 : DB관련, CRUD처리

 - 지시자 태그 : <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>

5. XML ( prefix="x" )

 - 주요기능 : XML 관련 처리

 - 지시자 태그 : <%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>

 

 

JSTL의 Core Library

 

1. <c:set>

 

num 이라는 변수에 100 값을 설정

<c:set var="num" value="100">

num이라는 변수에 100 값을 설정하고 page로 scope를 설정하여 특정 서블릿이나 JSP가 실행되는 동안에만 num이 100이라는 값의 정보를 유지하도록 할 수 있다.

<c:set var="num" value="100" scope="page">

 

자바의 Int num= 100; 을 <c:set var="num" value="100"> 으로 바꿨다고 생각하면 된다.

 

2. <c:out>

<c:out value="출력할 값" default="value가 null값일 경우 출력할 값">

자바의 System.out.print("안녕하세요"); 를 간단하게 <c:out value="안녕하세요">로 변경하여 출력할 수 있다.

value 값에는 el 표현식 사용도 가능하다.

 

3. <c:remove>

<c:remove var="변수명":scope="영역"/>

한 영역의 변수명을 지우는 코드이다. 영역을 생략할 경우 모든 영역의 변수가 삭제된다.

영역은 page > request > session > application 의 순서를 가진다.

 

4. <c:choose>

<c:when test="조건식">
<c:otherwise>

자바의 if-else 구문을 생각하면 된다. 다수의 조건문을 걸고 싶을 떄 사용한다.

<c:choose>
	<c:when test="${empty list}">
    	등록된 글이 없습니다.
    </c:when>
    <c:when test="${abc}">
    	안녕하세요.
    </c:when>
    <c:otherwise>
    	<c:set var="doenLoop" value="false"/>
    </c:otherwise>
</c:choose>

위와 같이 <c:choose> 태그안에 <c:when>을 중복하여 사용이 가능하며, boolean값이 True일 경우 블록을 수행한다.

모든 값이 False일 경우 <c:otherwise>를 실행한다.

 

5. <c:if>

<c:if test="조건식" var="조건을 검사하고 return되는 bool값을 저장할 변수" scope="bool 변수가 사용될 범위/>

자바의 if 문과 동일하지만 else문은 없다.여기서 scope값을 생략하면 기본으로 Page영역이 지정된다.

 

6. <c:forEach>

<c:forEach begin="시작값" end="끝값" step="증가값" var="count값이 저장될 변수"/>
<c:forEach var="변수" items="배열 or 컬랙션" varStatus="반복 상태를 알수있는 변수"/>

배열이나 컬랙션, Map 에 저장되어있는 값들을 순서대로 처리할 때 사용한다.

 <c:forEach var="item" items="${list}" begin=0 end=5 step=1   varStatus="status">
    <tr>
        <th>번호</th>
        <td>${status.count}</td>
        <th>이름</th>
        <td>${item.name}</td>
        <th>나이</th>
        <td>${item.age}</td>
    </tr>
 </c:forEach>

 

7. <c:forTokens>

<c:forTokens var="변수명" items="문자열" delims="구분자">콘텐츠</c:forTokens>

문자열을 delimiter(구분자)로 분리해서 반복문을 돌리는데 사용한다.

<% pageContext.setAttribute("tokens", "v1=20&v2=20&op=+"); %>
<ul>
    <c:forTokens var="item" items="${tokens}" delims="&">
        <li>${item}</li>
    </c:forTokens>
</ul>

위 코드의 실행결과는 아래와 같다.

v1=20

v2=20

op=+

 

 

'WebBase' 카테고리의 다른 글

[WebBase] jQuery.ajax  (0) 2022.06.23
[WebBase] Ajax  (0) 2022.06.23
[WebBase] JSP (Java Server Page)  (0) 2022.06.17
[WebBase] Servlet (서블릿)  (0) 2022.06.16
[WebBase] WAS(Web Application Server)  (0) 2022.06.15

+ Recent posts