공부노트/JSP

[JSP] JSTL 정리

Reload0213 2021. 12. 7. 18:23

JSTL (JSP Standard Tag Library)

JSP 개발을 단순화하기위한 태그 library

장점

  1. 빠른 개발 -> JSP를 단순화하는 많은 태그를 제공
  2. 코드 재사용성 -> 다양한 페이지에서 JSTL 태그 사용 가능
  3. 스크립틀릿 태그를 사용할 필요가 없음 (스크립틀릿 태그를 사용하지 않음)

JSTL tag

태그 이름기술

core tags 변수 지원, URL 관리, 흐름 제어 등을 제공, URL은 http://java.sun.com/jsp/jstl/core , 접두사는 c
function tags 문자열 조작 및 문자열 길이를 지원, URL은 http://java.sun.com/jsp/jstl/functions , 접두사는 fn
formatting tags 메시지 형식화, 번호 및 날짜 형식화 등을 지원, URL은 http://java.sun.com/jsp/jstl/fmt , 접두사는 fmt
XML tags 흐름 제어, 변환 등을 제공, URL은 http://java.sun.com/jsp/jstl/xml , 접두사는 x
SQL tags SQL 지원을 제공, URL은 http://java.sun.com/jsp/jstl/sql , 접두사는 sql

Core Tags

아래 코드 추가하고 사용가능함.

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>  

List

TagsDescription

c:out <% = ... %> 태그 작동 방식과 유사한 표현식의 결과를 표시
c:import 상대 또는 절대 URL을 검색하여 내용을 'var'의 문자열, 'varReader'의 Reader 또는 페이지에 표시
c:set 평가중인 표현식의 결과를 'scope'변수에 설정
c:remove 특정 범위에서 지정된 범위 변수를 제거하는 데 사용
c:catch 본문에서 발생하는 Throwable 예외를 포착하는 데 사용
c:if 조건을 테스트하는 데 사용되는 조건부 태그이며 표현식이 참인 경우에만 본문 내용을 표시
c:choose, c:when, c:otherwise 평가 된 조건이 true 인 경우 본문 내용을 포함하는 간단한 조건부 태그
c:forEach 기본 반복 태그, 고정 된 횟수 또는 초과 수집 동안 중첩 된 본문 내용을 반복
c:forTokens 제공된 델리 미터로 분리 된 토큰을 반복
c:param 포함하는 'import'태그의 URL에 매개 변수를 추가
c:redirect 브라우저를 새 URL로 리디렉션하고 컨텍스트 기준 URL을 지원
c url

<c:out> Tag

JSP expression tag와 비슷하지만 expression에서만 사용할 수 있다.
<% = ... %>과 유사한 표현식

예시)

<c:out value="${'Welcome to javaTpoint'}"/>  

<c:import> Tag

jsp 'include'와 유사
서버 내부 또는 서버 외부의 모든 자원 컨텐츠를 포함하는 추가 기능이 있음
include action의 모든 기능을 제공
가져 오기 태그를 사용하여 다른 FTP 서버 및 웹 사이트의 컨텐츠에 액세스 할 수 있었는데 보안 정책 때문에 불가능해짐(만약 하고 싶으면 cross domain 찾아보기!!)

<c:set> Tag

'scope'에서 평가된 표현식의 결과를 설정하는 데 사용
표현식을 평가하고 결과를 사용하여 java.util.Map 또는 JavaBean 값을 설정하므로 유용
jsp:setProperty action 태그와 유사

<c:set var="Income" scope="session" value="${4000*4}"/>  
<c:out value="${Income}"/>  

 

<c:remove> Tag

첫 번째 범위 또는 지정된 범위에서 변수를 제거
특별히 도움이되지는 않지만 JSP가 범위 자원을 정리할 수 있도록하는 데 사용될 수 있음

<c:catch> Tag

본문에서 발생하는 Throwable 예외를 포착하고 선택적으로 노출시키는 데 사용
일반적으로 오류 처리에 사용되며 프로그램에서 발생하는 문제를 보다 쉽게 처리

<c:catch var ="catchtheException">  
   <% int x = 2/0;%>  
</c:catch>  
  
<c:if test = "${catchtheException != null}">  
   <p>The type of exception is : ${catchtheException} <br />  
   There is an exception: ${catchtheException.message}</p>  
</c:if>  

<c:if> Tag

조건을 테스트하는 데 사용
평가 된 표현식이 true 인 경우 본문 내용을 표시

<c:set var="income" scope="session" value="${4000*4}"/>  
<c:if test="${income > 8000}">  
   <p>My income is: <c:out value="${income}"/><p>  
</c:if>

<c:choose>, <c:when>, <c:otherwise> Tag

choose 태그는 상호 배타적 인 조건부 작업에 대한 컨텍스트를 설정하는 조건부 태그
여러 대안 중에서 선택 하는 Java switch 문 처럼 작동
when은 조건이 'true'인 경우 본문을 포함하는 choose의 하위 태그

otherwise는 또한 choose의 하위 태그
& l; twhen> 태그를 따르며 평가 된 모든 이전 조건이 'false'인 경우에만 실행

c : when 및 c : other는 if-else 문처럼 작동합니다. 그러나 c : choose 태그 안에 배치해야합니다.

<c:choose>  
    <c:when test="${income <= 1000}">  
       Income is not good.  
    </c:when>  
    <c:when test="${income > 10000}">  
        Income is very good.  
    </c:when>  
    <c:otherwise>  
       Income is undetermined...  
    </c:otherwise>  
</c:choose>  
<c:out value="${num} is even number"></c:out>  
</c:when>  
<c:otherwise>  
<c:out value="${num} is odd number"></c:out>  
</c:otherwise>  
</c:choose>  

<c:forEach> Tag

중첩 된 본문 내용을 고정 된 횟수만큼 또는 컬렉션에 반복하는 데 사용되는 반복 태그
이 태그는 자바 스크립트 를 포함하는 동안, 스크립틀릿을 통해 또는 루프 용으로 사=용하기에 좋은 대안으로 사용
객체 컬렉션을 반복하므로 가장 일반적으로 사용.

<c:forEach var="j" begin="1" end="3">  
   Item <c:out value="${j}"/><p>  
</c:forEach> 

<c:forTokens> Tag

제공된 구분 기호로 구분 된 토큰을 반복
문자열을 토큰으로 나누고 각 토큰을 반복하여 출력을 생성하는 데 사용
c : forEach 태그와 유사한 속성을 갖음(구분 기호로 사용될 문자를 지정하는 데 사용되는 추가 속성 delims 제외하면 유사)

<c:forTokens items="Rahul-Nakul-Rajesh" delims="-" var="name">  
   <c:out value="${name}"/><p>  
</c:forTokens>  

<c:param> Tag

포함하는 'import'태그의 URL에 매개 변수를 추가
URL 내에 적절한 URL 요청 매개 변수 지정 가능
필요한 URL 인코딩을 자동으로 수행
value 속성은 매개 변수 값을 나타내고 name 속성은 매개 변수 이름을 나타냄

<c:url value="/index1.jsp" var="completeURL"/>  
 <c:param name="trackingId" value="786"/>  
 <c:param name="user" value="Nakul"/>  
</c:url>  
${completeURL}

 

 

'공부노트 > JSP' 카테고리의 다른 글

[JSP] Redirect , Forward (둘은 무엇이며, 각각 언제 사용할까?)  (0) 2021.12.10
[JSP]MariaDB의 JDBC 연결  (0) 2021.12.07
[JSP] MVC 패턴  (0) 2021.12.05