[JSP] JSTL 정리

정예은·2020년 1월 10일
11

web

목록 보기
12/27

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 tagsSQL 지원을 제공, 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을 지원
curl

<c:out> Tag

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

예시)

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

스크린샷 2020-01-10 오전 11.50.22.png

<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}"/>  

스크린샷 2020-01-10 오후 2.13.05.png

<c:remove> Tag

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

스크린샷 2020-01-10 오후 2.16.12.png

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

스크린샷 2020-01-10 오후 2.18.44.png

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

스크린샷 2020-01-10 오후 2.21.03.png

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

스크린샷 2020-01-10 오후 2.27.37.png

<c:forEach> Tag

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

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

스크린샷 2020-01-10 오후 2.42.20.png

<c:forTokens> Tag

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

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

스크린샷 2020-01-10 오후 2.44.30.png

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

스크린샷 2020-01-10 오후 2.46.49.png

<c:redirect> Tag

브라우저를 새 URL로 리디렉션
문맥 기준 URL과 c : param 태그를 지원

자동 URL 재 작성을 사용하여 브라우저를 대체 URL로 리디렉션하는 데 사용

<c:if test="${url<1}">  
     	<c:redirect url="https://velog.io/@ye050425"/>  
  	</c:if>  
	<c:if test="${url>1}">  
	   	<c:redirect url="http://facebook.com"/>  
	</c:if>

<c:url> Tag

선택적 쿼리 매개 변수를 사용하여 URL을 만듬
URL 인코딩 또는 URL 형식에 사용
response.encodeURL () 메소드에 대한 호출을 작성하는 대체 방법으로 사용
장점은 적절한 URL 인코딩이며 자식이 지정한 매개 변수를 포함한다는 것

<c:url value="/RegisterDao.jsp"/>  

function tag

많은 표준 함수를 제공, 대부분은 일반적인 문자열 조작 함수
JSTL 함수 라이브러리를 포함시키는 데 사용되는 구문

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

Lists

JSTL FunctionsDescription
fn:contains()프로그램에서 지정된 하위 문자열을 포함하는 입력 문자열인지 테스트하는 데 사용
fn:containsIgnoreCase()입력 문자열에 대소 문자를 구분하지 않고 지정된 하위 문자열이 포함되어 있는지 테스트하는 데 사용
fn:endsWith()입력 문자열이 지정된 접미어로 끝나는 지 테스트하는 데 사용
fn:escapeXml()XML 마크업으로 해석되는 문자를 escape
fn:indexOf()지정된 하위 문자열이 처음 나타나는 문자열 내에서 인덱스를 반환
fn:trim()문자열의 양쪽 끝에서 공백을 제거
fn:startsWith()주어진 문자열이 특정 문자열 값으로 시작되는지 여부를 확인하는 데 사용.
fn:split()문자열을 하위 문자열 배열로 분할
fn:toLowerCase()문자열의 모든 문자를 소문자로 변환
fn:toUpperCase()문자열의 모든 문자를 대문자로 변환
fn:substring()주어진 시작 및 끝 위치에 따라 문자열의 하위 집합을 반환
fn:substringAfter()특정 하위 문자열 다음에 문자열의 하위 집합을 반환
fn:substringBefore()특정 하위 문자열 앞의 문자열 하위 집합을 반환
fn:length()문자열 내부의 문자 수 또는 컬렉션의 항목 수를 반환
fn:replace()모든 문자열을 다른 문자열 시퀀스로 바꿈

fn:contains()

지정된 하위 문자열이 문자열에서 발견되면 true를 반환하고 그렇지 않으면 false를 반환

<c:set var="String" value="Hello world"/>  
  
<c:if test="${fn:contains(String, 'hello')}">  
   <p>Found hello<p>  
</c:if>  
  
<c:if test="${fn:contains(String, 'Hello')}">  
   <p>Found Hello<p>  
</c:if>  

fn:containsIgnoreCase()

입력 문자열에 대소 문자를 구분하지 않고 지정된 하위 문자열이 포함되어 있는지 테스트하는 데 사용
지정된 부분 문자열을 검색하는 동안 대소 문자를 무시

<c:if test="${fn:containsIgnoreCase(String, 'hello')}">  
	   <p>Found hello 2<p>  
	</c:if>  
	  
	<c:if test="${fn:containsIgnoreCase(String, 'Hello')}">  
	   <p>Found Hello 2<p>  
	</c:if> 

endsWith ()

입력 문자열이 지정된 접미어로 끝나는 지 테스트하는 데 사용
문자열이 지정된 접미어로 끝나는 경우 true를 반환하고 그렇지 않으면 false를 반환

<c:set var="String" value="Welcome to JSP programming"/>  
  
<c:if test="${fn:endsWith(String, 'programming')}">  
   <p>String ends with programming<p>  
</c:if>  
  
<c:if test="${fn:endsWith(String, 'JSP')}">  
   <p>String ends with JSP<p>  
</c:if> 

escapeXml ()

XML 마크 업 언어에서 문자를 이스케이프 처리하는 데 사용

<c:set var="string1" value="It is first String."/>  
<c:set var="string2" value="It is <xyz>second String.</xyz>"/>  
  
<p>With escapeXml() Function:</p>  
<p>string-1 : ${fn:escapeXml(string1)}</p>  
<p>string-2 : ${fn:escapeXml(string2)}</p>  
  
<p>Without escapeXml() Function:</p>  
<p>string-1 : ${string1}</p>  
<p>string-2 : ${string2}</p>  

fn:indexOf()

하위 문자열에 지정된 문자열의 인덱스를 결정하는 데 사용

<c:set var="string1" value="It is first String."/>  
<c:set var="string2" value="It is <xyz>second String.</xyz>"/>  
  
<p>Index-1 : ${fn:indexOf(string1, "first")}</p>  
<p>Index-2 : ${fn:indexOf(string2, "second")}</p>  

fn:trim()

문자열의 양쪽 끝에서 공백을 무시하는 데 사용

<c:set var="str1" value="Welcome to JSP        programming         "/>  
<p>String-1 Length is : ${fn:length(str1)}</p>  
  
<c:set var="str2" value="${fn:trim(str1)}" />  
<p>String-2 Length is : ${fn:length(str2)}</p>  
<p>Final value of string is : ${str2}</p> 

startsWith ()

입력 문자열이 지정된 하위 문자열로 시작되는지 테스트
주어진 접두사로 문자열을 시작할 때 true 아니면 false 반환

<c:set var="msg" value="The Example of JSTL fn:startsWith() Function"/>  
The string starts with "The": ${fn:startsWith(msg, 'The')}  
<br>The string starts with "Example": ${fn:startsWith(msg, 'Example')}  

fn:split()

구분 기호 문자열을 기반으로 문자열을 배열로 분할하는 데 사용

<c:set var="str1" value="Welcome-to-JSP-Programming."/>  
<c:set var="str2" value="${fn:split(str1, '-')}" />  
<c:set var="str3" value="${fn:join(str2, ' ')}" />  
  
<p>String-3 : ${str3}</p>  
<c:set var="str4" value="${fn:split(str3, ' ')}" />  
<c:set var="str5" value="${fn:join(str4, '-')}" />  
  
<p>String-5 : ${str5}</p>  

fn:toLowerCase ()

입력 문자열에서 대문자를 해당하는 소문자로 바꾸는 데 사용

<c:set var="string" value="Welcome to JSP Programming"/>  
${fn:toLowerCase("HELLO,")}  
${fn:toLowerCase(string)}  

fn:toUpperCase()

입력 문자열에서 소문자를 해당 대문자로 바꾸는 데 사용

<c:set var="site" value="javatpoint.com"/>  
<c:set var="author" value="Sonoo Jaiswal"/>  
Hi, This is ${fn:toUpperCase(site)} developed by ${fn:toUpperCase(author)}.  

fn:substring ()

지정된 시작 및 끝 위치에 따라 주어진 입력 문자열의 하위 문자열을 반환하는 데 사용
start : 하위 문자열의 시작 위치
end : 부분 문자열의 끝 위치
입력 문자열 : 하위 문자열을 가져와야하는 문자열
함수의 반환 유형 : 문자열

<c:set var="string" value="This is the first string."/>  
${fn:substring(string, 5, 17)}  

fn:substringAfter()

제공된 문자열 값 뒤에있는 문자열 부분을 반환

<c:set var="string" value="Nakul Jain"/>  
${fn:substringAfter(string, "Nakul")}  

fn:substringBefore ()

지정된 문자열 값 앞에있는 원래 문자열의 일부를 반환하는 데 사용

<c:set var="string" value="Hi, This is JAVATPOINT.COM developed by SONOO JAISWAL."/>  
${fn:substringBefore(string, "developed")}  

fn:length()

문자열 길이를 계산하고 컬렉션의 요소 수를 찾는 데 사용

<c:set var="str1" value="This is first string"/>  
<c:set var="str2" value="Hello"/>  
Length of the String-1 is: ${fn:length(str1)}<br>  
Length of the String-2 is: ${fn:length(str2)}  

fn:replace ()

입력 문자열을 검색하여 제공된 문자열로 바꿈

<c:set var="author" value="Ramesh Kumar"/>  
<c:set var="string" value="pqr xyz abc PQR"/>  
${fn:replace(author, "Ramesh", "Suresh")}  
${fn:replace(string, "pqr", "hello")}  

JSTL Formatting tags

서식 태그는 메시지 형식, 번호 및 날짜 형식 등을 지원
국제화 된 웹 사이트에서 텍스트, 시간, 날짜 및 숫자를 표시하고 형식화하는 데 사용
라이브러리를 포함하는 데 사용되는 구문

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

Lists

Formatting TagsDescriptions
fmt:parseNumber통화, 백분율 또는 숫자의 문자열 표현을 구문 분석하는 데 사용
fmt:timeZone본문 또는 시간대에 중첩 된 구문 분석 조치를 시간 형식화에 지정
fmt:formatNumber특정 형식 또는 정밀도로 숫자 값을 형식화하는 데 사용
fmt:parseDate시간과 날짜의 문자열 표현을 구문 분석
fmt:bundle태그 본문에서 사용될 ResourceBundle 객체를 만드는 데 사용
fmt:setTimeZone시간대 구성 변수 내에 시간대를 저장
fmt:setBundle자원 번들을로드하고이를 번들 구성 변수 또는 명명 된 범위 변수에 저장variable or the named scoped variable.
fmt:message국제화 된 메시지를 표시
fmt:formatDate제공된 패턴 및 스타일을 사용하여 시간 및 / 또는 날짜를 형식화함

fmt:parseNumber

통화, 백분율 또는 숫자의 문자열 표현을 구문 분석하는 데 사용
사용자 지정 형식 패턴을 기반으로 함

<h3>The fmt:parseNumber tag Example is:</h3>  
  
<c:set var="Amount" value="786.970" />  
  
    <fmt:parseNumber var="j" type="number" value="${Amount}" />  
    <p><i>Amount is:</i>  <c:out value="${j}" /></p>  
  
    <fmt:parseNumber var="j" integerOnly="true" type="number" value="${Amount}" />  
    <p><i>Amount is:</i>  <c:out value="${j}" /></p>  

fmt:timeZone tag

시간 형식화 조작에 사용되는 시간대 정보를 지정하는 데 사용

    <c:set var="str" value="<%=new java.util.Date()%>" />  
    <table border="2" width="100%">  
      <tr>  
        <td width="100%" colspan="2" bgcolor="#FF7F50">  
          <p align="center">  
            <b>  
              <font color="#000000" size="6">Formatting:  
              <fmt:formatDate value="${str}" type="both"  
              timeStyle="long" dateStyle="long" />  
              </font>  
            </b>  
          </p>  
        </td>  
      </tr>  
      <c:forEach var="zone" items="<%=java.util.TimeZone.getAvailableIDs()%>">  
        <tr>  
          <td width="50%"  bgcolor="#C0C0C0">  
            <c:out value="${zone}" />  
          </td>  
          <td width="50%" bgcolor="#FFEBCD">  
            <fmt:timeZone value="${zone}">  
              <fmt:formatDate value="${str}" timeZone="${zn}"  
              type="both"/>  
            </fmt:timeZone>  
          </td>  
        </tr>  
      </c:forEach>  
    </table> 

fmt : formatNumber

사용자 정의 형식 패턴에 따라 백분율, 통화 및 숫자를 형식화하는 데 사용

<h3>Formatting of Number:</h3>  
	<c:set var="Amount" value="9850.14115" />  
	<p> Formatted Number-1:  
	<fmt:formatNumber value="${Amount}" type="currency" /></p>  
	<p>Formatted Number-2:  
	<fmt:formatNumber type="number" groupingUsed="true" value="${Amount}" /></p>  
	<p>Formatted Number-3:  
	<fmt:formatNumber type="number" maxIntegerDigits="3" value="${Amount}" /></p>  
	<p>Formatted Number-4:  
	<fmt:formatNumber type="number" maxFractionDigits="6" value="${Amount}" /></p>  
	<p>Formatted Number-5:  
	<fmt:formatNumber type="percent" maxIntegerDigits="4" value="${Amount}" /></p>  
	<p>Formatted Number-6:  
	<fmt:formatNumber type="number" pattern="###.###$" value="${Amount}" /></p>  

fmt:parseDate

사용자 정의 형식 패턴에 따라 시간과 날짜 형식을 지정하는 데 사용

<h3>Parsed Date:</h3>  
<c:set var="date" value="12-08-2016" />  
  
<fmt:parseDate value="${date}" var="parsedDate"  pattern="dd-MM-yyyy" />  
<p><c:out value="${parsedDate}" /></p>

fmt : bundle

태그 본문에서 사용하는 자원 번들을로드
<fmt : bundle 태그>와 </ fmt : bundle> 태그 사이에서 발생하는 모든 <fmt : message>태그에 사용
태그 본문에서 사용될 ResourceBundle 객체를 만드는 데 사용

JSTL tag sourcecode

<fmt:bundle basename="com.hello.Simple" prefix="colour.">  
   <fmt:message key="Violet"/><br/>  
   <fmt:message key="Indigo"/><br/>  
  <fmt:message key="Blue"/><br/>  
  
</fmt:bundle> 

Simple.java Sourcecode

package com.javatpoint;  
import java.util.ListResourceBundle;  
public class Simple extends ListResourceBundle {  
    public Object[][] getContents() {  
        return contents;  
    }  
    static final Object[][] contents = { { "colour.Violet", "Violet" },  
            { "colour.Indigo", "Indigo" }, { "colour.Blue", "Blue" }, };  
}  

fmt:setTimeZone

지정된 범위 변수 내에서 표준 시간대 개체를 복사하는 데 사용

<c:set var="date" value="<%=new java.util.Date()%>" />  
	<p><b>Date and Time in Indian Standard Time(IST) Zone:</b> <fmt:formatDate value="${date}" type="both" timeStyle="long" dateStyle="long" /></p>  
	<fmt:setTimeZone value="GMT-10" />  
	<p><b>Date and Time in GMT-10 time Zone: </b><fmt:formatDate value="${date}" type="both" timeStyle="long" dateStyle="long" /></p>

fmt : setBundle

자원 번들을로드하고 해당 값을 번들 구성 변수 또는 이름 범위 변수에 저장하는 데 사용
태그 본문에서 사용될 ResourceBundle 객체를 만드는 데 사용
test Sourcecode

<fmt:setBundle basename="com.hello.Main" var="lang"/>  
<fmt:message key="vegetable.Potato" bundle="${lang}"/><br/>  
<fmt:message key="vegetable.Tomato" bundle="${lang}"/><br/>  
<fmt:message key="vegetable.Carrot" bundle="${lang}"/><br/>  

Main.java

import java.util.ListResourceBundle;  
public class Main extends ListResourceBundle {  
    public Object[][] getContents() {  
        return contents;  
    }  
static final Object[][] contents = { { "vegetable.Potato", "Potato" },  
            { "vegetable.Tomato", "Tomato" }, { "vegetable.Carrot", "Carrot" }, };  
}

fmt:message

국제화 된 메시지를 표시하는 데 사용
번들 속성에 지정된 자원 번들을 사용하여 값을 리턴하도록 현지화 된 메시지의 키를 맵핑

<fmt:setBundle basename="com.hello.Message" var="lang"/>  
<fmt:message key="vegetable.Potato" bundle="${lang}"/><br/>  
   <fmt:message key="vegetable.Tomato" bundle="${lang}"/><br/>  
  <fmt:message key="vegetable.Carrot" bundle="${lang}"/><br/>  

Message.java

import java.util.ListResourceBundle; 

public class Message extends ListResourceBundle {  
    public Object[][] getContents() {  
        return contents;  
    }  
    static final Object[][] contents = { { "vegetable.Potato", "Potato" },  
            { "vegetable.Tomato", "Tomato" }, { "vegetable.Carrot", "Carrot" }, };  
}  

fmt:formatDate

제공된 패턴 및 스타일을 사용하여 날짜 및 시간의 다른 형식에 사용

	<h2>Different Formats of the Date</h2>  
	<c:set var="Date" value="<%=new java.util.Date()%>" />  
	<p>  
	Formatted Time :  
	<fmt:formatDate type="time" value="${Date}" />  
	</p>  
	<p>  
	Formatted Date :  
	<fmt:formatDate type="date" value="${Date}" />  
	</p>  
	<p>  
	Formatted Date and Time :  
	<fmt:formatDate type="both" value="${Date}" />  
	</p>  
	<p>  
	Formatted Date and Time in short style :  
	<fmt:formatDate type="both" dateStyle="short" timeStyle="short"  
	value="${Date}" />  
	</p>  
	<p>  
	Formatted Date and Time in medium style :  
	<fmt:formatDate type="both" dateStyle="medium" timeStyle="medium"  
	value="${Date}" />  
	</p>  
	<p>  
	Formatted Date and Time in long style :  
	<fmt:formatDate type="both" dateStyle="long" timeStyle="long"  
	value="${Date}" />  
	</p>

XML tags

JSP 중심의 XML 문서 조작 및 작성 방법을 제공하는 데 사용
XML 데이터와 상호 작용하는 데 사용되는 사용자 정의 태그 제공
흐름 제어, 변환 등을 제공
라이브러리를 포함하는 데 사용되는 구문

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

예시 실행을 위해서는 \lib: 안에 아래 두 파일이 있어야 함

Xalan.jar: Download this jar file from the link:
http://xml.apache.org/xalan-j/index.html
XercesImpl.jar: Download this jar file from the link:
http://www.apache.org/dist/xerces/j/

XML TagsDescriptions
x:out<%= ...> 태그와 유사하지만 XPath 표현식
x:parse태그 본문 또는 속성에 지정된 XML 데이터를 구문 분석하는 데 사용
x:set변수를 XPath 표현식의 값으로 설정하는 데 사용
x:choose상호 배타적 인 조건부 작업에 대한 context를 설정하는 조건부 태그
x:when가 된 조건이 'true'인 경우 본문이 포함됨
x:otherwise태그 및 이전의 모든 조건이 '거짓'인 경우에만 실행
x:if테스트 XPath 표현식을 평가하는 데 사용되며, true 인 경우 본문 내용을 처리
x:transformXSL (Extensible Stylesheet Language) 변환을 제공하기 위해 XML 문서에서 사용
x:paramXSLT 스타일 시트에서 매개 변수를 설정하기 위해 변환 태그와 함께 사용
<h2>Vegetable Information:</h2>  
<c:set var="vegetable">  
<vegetables>  
    <vegetable>  
      <name>onion</name>  
      <price>40/kg</price>  
    </vegetable>  
 <vegetable>  
      <name>Potato</name>  
      <price>30/kg</price>  
    </vegetable>  
 <vegetable>  
      <name>Tomato</name>  
      <price>90/kg</price>  
    </vegetable>  
</vegetables>  
</c:set>  
<x:parse xml="${vegetable}" var="output"/>  
<b>Name of the vegetable is</b>:  
<x:out select="$output/vegetables/vegetable[1]/name" /><br>  
<b>Price of the Potato is</b>:  
<x:out select="$output/vegetables/vegetable[2]/price" />  

SQL Tags

SQL 지원을 제공
사용하면 Microsoft SQL Server, mySQL, or Oracle 와 상호작용 가능

<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>  
SQL TagsDescriptions
sql:setDataSource프로토 타이핑에만 적합한 간단한 데이터 소스를 만드는 데 사용
sql:querysql 속성 또는 본문에 정의 된 SQL 쿼리를 실행하는 데 사용
sql:updatesql 속성 또는 태그 본문에 정의 된 SQL 업데이트를 실행하는 데 사용
sql:paramSQL 문의 매개 변수를 지정된 값으로 설정하는 데 사용
sql:dateParamSQL 문의 매개 변수를 지정된 java.util.Date 값으로 설정하는 데 사용
sql:transaction중첩 된 데이터베이스 조치에 공통 연결을 제공하는 데 사용

1개의 댓글

comment-user-thumbnail
2021년 9월 7일

잘보고갑니다.

답글 달기