1. 개요

JSTL (JavaServer Pages Tag Library)은 루핑, 조건부 형식화 등과 같은 일부 공통 작업을 구현하는 데 사용할 수있는 태그 세트입니다.

이 예제에서는 JSTL을 설정하는 방법과 다양한 태그를 사용하는 방법에 대해 논의 할 것입니다.

2. 설정

JSTL 기능을 사용하려면 프로젝트에 라이브러리를 추가해야합니다. Maven 프로젝트의 경우 pom.xml 파일에 의존성을 추가 합니다.

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>

프로젝트에 라이브러리를 추가하면 최종 설정은 다음과 같은 taglib 지시문을 사용하여 JSP에 핵심 JSTL 태그와 기타 태그의 네임 스페이스 파일을 추가하는 것입니다.

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

다음으로, 크게 5 개의 카테고리로 분류 된 이러한 태그를 살펴 보겠습니다.

3. 핵심 태그

JSTL 코어 태그 라이브러리에는 값 인쇄, 변수 선언, 예외 처리, 반복 수행 및 조건문 선언과 같은 기본 작업을 수행하기위한 태그가 포함되어 있습니다.

핵심 태그를 살펴 보겠습니다.

3.1. <C : 밖으로> 태그

<c : out> 은 변수에 포함 된 값 또는 암시 적 표현식의 결과를 표시하는 데 사용됩니다.

값, 기본값 및 escapeXML의 세 가지 속성이 있습니다 . escapeXML의 속성 출력 원시 XML 태그는에 포함 된 값의 속성 또는 인클로저.

<c : out> 태그 의 예 는 다음과 같습니다.

<c:out value="${pageTitle}"/>

3.2. <C : 설정> 태그

<C : 세트> 태그 JSP 범위에서 변수 선언에 사용된다. 변수의 이름과 변수의 값을 각각 varvalue 속성에 선언 할 수도 있습니다.

예는 다음과 같은 형식입니다.

<c:set value="JSTL Core Tags Example" var="pageTitle"/>

3.3. <C : 삭제> 태그

<C : 제거해> 태그들을 제거 할당에 해당 변수 범위 널을 가변으로한다. 그것은 소요 VAR범위 와 속성을 범위는 모든 범위의 기본 값을 갖는.

다음은 <c : remove> 태그의 사용 예입니다 .

<c:remove var="pageTitle"/>

3.4. <C : 캐치> 태그

<c : catch> 태그는 인클로저 내에서 발생한 모든 예외를 포착합니다. 예외가 발생하면 해당 값 이이 태그 var 속성에 저장됩니다 .

일반적인 사용법은 다음과 같습니다.

<c:catch var ="exceptionThrown">
    <% int x = Integer.valueOf("a");%>
</c:catch>

그리고 예외가 발생했는지 확인하기 위해 아래와 같이 <c : if> 태그를 사용합니다.

<c:if test = "${exceptionThrown != null}">
    <p>The exception is : ${exceptionThrown} <br />
      There is an exception: ${exceptionThrown.message}
    </p>
</c:if>

3.5. <C : 경우> 태그

<C : 경우> 조건부 태그입니다 표시 또는 실행하는이 동봉 된 것 스크립틀릿 때에 만 테스트 true로 속성 평가합니다. 평가 결과는 var 속성에 저장할 수 있습니다 .

3.6. <c : choose> , <c : when><c : otherwise> 태그

<C : 선택은> 스위치 같은 경우 나-다른 표현 수행에 사용되는 부모 태그입니다. 두 개의 하위 태그가 있습니다. <c : when><c : otherwise> 는 각각 if / else-if 및 else를 나타냅니다.

<c : when>평가할 표현식을 보유 하는 테스트 속성을 취합니다 . 다음은 이러한 태그의 사용 예입니다.

<c:set value="<%= Calendar.getInstance().get(Calendar.SECOND)%>" var="seconds"/>
<c:choose>
    <c:when test="${seconds le 30 }">
        <c:out value="${seconds} is less than 30"/>
    </c:when>
    <c:when test="${seconds eq 30 }">
        <c:out value="${seconds} is equal to 30"/>
    </c:when>
    <c:otherwise>
        <c:out value="${seconds} is greater than 30"/>
    </c:otherwise>
</c:choose>

3.7. <C : 수입> 태그

<C : 수입> 태그 핸들 페치 절대 또는 상대 URL에서 컨텐츠를 노출.

urlvar 속성을 사용하여 URLURL에서 가져온 콘텐츠를 각각 보유 할 수 있습니다 . 예를 들어 다음과 같은 방법으로 URL에서 콘텐츠를 가져올 수 있습니다.

<c:import var = "data" url = "http://www.example.com"/>

3.8. <C : 대해 forEach> 태그

<C : 대해 forEach> 태그는 동안이나 할-동안 구문, 자바에 대한 유사하다. 항목의 속성은 동안 항목의 List이 이상 반복 할 수 보유하고 시작 속성이 시작하고 각각의 인덱스를 종료 (제로 색인)를 누르고 있습니다.

<c : forEach> 태그에는 각 반복 후 인덱스 증가 크기를 제어 하는 단계 속성 도 있습니다 . 아래는 사용 예를 보여줍니다.

<c:forEach var = "i" items="1,4,5,6,7,8,9">
    Item <c:out value = "No. ${i}"/><p>
</c:forEach>

3.9. <C : forTokens> 태그

<C : forTokens> 태그를 분리하기위한 사용되는 문자열을 세지 토큰으로하고.

<c : forEach> 태그 와 유사하게 항목 속성과 다음과 같이 문자열 의 구분 기호 인 추가 delim 속성 이 있습니다.

<c:forTokens 
  items = "Patrick:Wilson:Ibrahima:Chris" 
  delims = ":" var = "name">
    <c:out value = "Name: ${name}"/><p>
</c:forTokens>

3.10. <c : url><c : param> 태그

<C : URL> 태그는 적절한 인코딩 요청이있는 URL 포맷에 유용하다. 형식화 된 URL은 var 속성에 저장됩니다 .

<c : url> 태그에는 URL 매개 변수를 지정하는 데 사용되는 <c : param> 하위 태그도 있습니다 . 아래에 예가 나와 있습니다.

<c:url value = "/core_tags" var = "myURL">
    <c:param name = "parameter_1" value = "1234"/>
    <c:param name = "parameter_2" value = "abcd"/>
</c:url>

3.11. <C : 리디렉션> 태그

<C : 리디렉션> 태그를 수행 URL을 재 작성 및 리디렉션의에 지정된 페이지로 사용자 의 URL 속성. 일반적인 사용 사례는 다음과 같습니다.

<c:redirect url="/core_tags"/>

4. 태그 서식 지정

JSTL 형식 지정 태그 라이브러리는 더 나은 표시를 위해 텍스트, 숫자, 날짜, 시간 및 기타 변수를 형식화하는 편리한 방법을 제공합니다.

JSTL 형식화 태그를 사용하여 웹 사이트의 국제화를 향상시킬 수도 있습니다.

이러한 형식 지정 태그를 사용하기 전에 JSP에 taglib를 추가해야합니다.

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

다양한 형식 지정 태그와 사용 방법을 확인하겠습니다.

4.1. <FMT : formatDate> 태그

<FMT : formatDate> 태그는 날짜 또는 시간을 포맷에 유용하다. 속성 포맷 할 날짜를 보유하고, 타입 속성은 세 개의 값을 취하며; 날짜, 시간 또는 둘 다 .

<fmt : formatDate> 에는 원하는 형식화 패턴을 지정할 수 있는 패턴 속성 도 있습니다 . 다음은 패턴 중 하나의 예입니다.

<c:set var="now" value="<%= new java.util.Date()%>"/>
<fmt:formatDate type="time" value="${now}"/>

4.2. <FMT : parseDate> 태그

<FMT : parseDate> 태그는 유사하다 : <formatDate FMT> 태그.

차이점은 <fmt : parseDate> 태그를 사용하면 기본 날짜 파서가 날짜 값이있을 것으로 예상해야하는 형식화 패턴을 지정할 수 있다는 것입니다.

날짜를 구문 분석 할 수 있습니다.

<c:set var="today" value="28-03-2018"/>
<fmt:parseDate value="${today}" var="parsedDate" pattern="dd-MM-yyyy"/>

4.3. <FMT : formatNumber> 태그

<FMT : formatNumber> 중 하나가 될 수있는 특정 패턴이나 정밀도 숫자 렌더링 태그 핸들 번호, 통화 또는 백분율 의에 지정된 타입 속성. <fmt : formatNumber>의 사용 예 는 다음과 같습니다.

<c:set var="fee" value="35050.1067"/>
<fmt:formatNumber value="${fee}" type="currency"/>

4.4. <FMT : parseNumber> 태그

<FMT : parseNumber> 태그는 유사하다 : <formatNumber FMT> 태그. 차이점은 <fmt : parseNumber> 태그를 사용하면 기본 숫자 파서가 숫자가 있어야하는 형식화 패턴을 지정할 수 있다는 것입니다.

다음과 같이 사용할 수 있습니다.

<fmt:parseNumber var="i" type="number" value="${fee}"/>

4.5. <FMT : 번들> 태그

<FMT 번들> 태그에 대해 상위 태그 인 <: 메시지 FMT> 태그. <fmt : bundle>basename 속성에 지정된 번들 을 포함 된 <fmt : message> 태그로 만듭니다.

<fmt : bundle> 태그는 로케일 별 객체를 지정할 수 있으므로 국제화를 활성화하는 데 유용합니다. 일반적인 사용법은 다음과 같습니다.

<fmt:bundle basename="com.baeldung.jstl.bundles.CustomMessage" prefix="verb.">
    <fmt:message key="go"/><br/>
    <fmt:message key="come"/><br/>
    <fmt:message key="sit"/><br/>
    <fmt:message key="stand"/><br/>
</fmt:bundle>

4.6. <FMT : setBundle> 태그

<FMT : setBundle> 태그는 JSP 내에서 자원 번들을로드하고 전체 페이지를 통해 사용할 수 있도록하는 데 사용됩니다. 로드 된 리소스 번들은 <fmt : setBundle> 태그 var 속성에 저장됩니다 . 다음과 같이 번들을 설정할 수 있습니다.

<fmt:setBundle basename="com.baeldung.jstl.bundles.CustomMessage" var="lang"/>

4.7. <FMT :로 setLocale> 태그

<FMT :로 setLocale> 태그는 JSP의 섹션이 선언 한 후 배치에 대한 로케일을 설정하는 데 사용됩니다. 일반적으로 다음과 같이 설정합니다.

<fmt:setLocale value="fr_FR"/>

fr_FR은이 경우 프랑스어 인 로케일을 나타냅니다.

4.8. <FMT : timeZone가> 태그

<FMT : 타임 존> 태그를 지정 시간대가 언제가 서식 또는 인클로저에서 태그로 작업을 분석하여 사용할 수 있도록하는 부모 태그입니다.

이 시간대 매개 변수는 속성으로 제공됩니다 . 사용 예는 다음과 같습니다.

<fmt:timeZone value="${zone}">
    <fmt:formatDate value="${now}" timeZone="${zn}" 
      type="both"/>
</fmt:timeZone>

4.9. <FMT : setTimeZone> 태그

<FMT : setTimeZone> 태그는 지정된 시간대를 복사하는 데 사용할 수있는 의에 지정된 범위의 변수 특성을 VAR의 속성. 우리는 이것을 다음과 같이 정의합니다.

<fmt:setTimeZone value="GMT+9"/>

4.10. <FMT : 메시지> 태그

<FMT : 메시지 > 태그 디스플레이 국제화 메시지에 이용된다. 검색 할 메시지의 고유 식별자는 속성 으로 전달되어야 합니다.

bundle 속성을 통해서도 지정할 수있는 메시지를 조회하기위한 특정 번들 입니다.

다음과 같이 보일 수 있습니다.

<fmt:setBundle basename = "com.baeldung.jstl.bundles.CustomMessage" var = "lang"/>
<fmt:message key="verb.go" bundle="${lang}"/>

4.11. <FMT : requestEncoding> 태그

<FMT : requestEncoding> 태그의 동작 유형과 형태의 인코딩 타입을 지정하는데 유용하다 포스트 .

사용할 문자 인코딩의 이름은 <fmt : requestEncoding> 태그 속성을 통해 제공됩니다 .

아래의 예를 보겠습니다.

<fmt:requestEncoding value = "UTF-8" />

5. XML 태그

JSTL XML 태그 라이브러리는 JSP 내에서 XML 데이터와 상호 작용하는 편리한 방법을 제공합니다.

이러한 XML 태그에 액세스 할 수 있도록 다음과 같이 JSP에 태그 라이브러리를 추가합니다.

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

JSTL XML 태그 라이브러리의 다른 태그를 살펴 보겠습니다.

5.1. <X : 밖으로> 태그

<x : 아웃> 태그는 유사한되는 <% = %> JSP 스크립틀릿 태그에 있지만 <x : 아웃> 구체적 XPath 식에 사용된다.

<x : out> 태그에는 각각 문자열 을 평가하고 특수 XML 문자를 이스케이프 할 수 있도록 XPath 표현식을 지정하는 데 사용되는 selectescapeXML 속성이 있습니다.

간단한 예는 다음과 같습니다.

<x:out select="$output/items/item[1]/name"/>

위의 $ output 은 미리로드 된 XSL 파일을 나타냅니다.

5.2. <X : 구문 분석> 태그

<x : 해석> 태그는 지정된 XML 데이터 분석에 사용되는 XML 또는 문서 속성 또는 인클로저. 일반적인 예는 다음과 같습니다.

<x:parse xml="${xmltext}" var="output"/>

5.3. <X : 세트> 태그

<x : 설정> 태그는 지정된 변수 설정 var에 그 평가에 전달 XPath 표현에 속성 선택 속성. 일반적인 예는 다음과 같습니다.

<x:set var="fragment" select="$output//item"/>

5.4. <X : 경우> 태그

<x : 경우> XPath 식 공급이 경우 태그는 본체 처리 선택 참 특성 평가한다.

평가 결과는 var 속성에 저장할 수 있습니다 .

간단한 사용 사례는 다음과 같습니다.

<x:if select="$output//item">
    Document has at least one <item> element.
</x:if>

5.5. <X : 대해 forEach> 태그

<X : 대해 forEach> 태그는 XML 문서의 노드를 통해 반복하는 데 사용됩니다. XML 문서는 <x : forEach> 태그의 선택 속성을 통해 제공됩니다 .

<c : forEach> 핵심 태그 와 마찬가지로 <x : forEach> 태그에는 시작, 종료단계 속성이 있습니다.

따라서 우리는 다음을 갖게 될 것입니다.

<ul class="items">
    <x:forEach select="$output/items/item/name" var="item">
        <li>Item Name: <x:out select="$item"/></li>
    </x:forEach>
</ul>

5.6. <x : choose> , <x : when><x : otherwise> 태그

<X : 선택> 태그는 식 스위치 같은 경우 나 / 다른-경우 / 다른 수행에 사용에 속성이없는 있지만 부모 태그입니다은 분리 장치 <X : 때><X : 그렇지 않으면> 태그입니다.

<x : when> 태그는 if / else-if와 유사 하며 평가할 표현식을 보유 하는 select 속성을 사용합니다.

<x : otherwise> 태그는 else / default 절과 유사하며 속성이 없습니다.

다음은 샘플 사용 사례입니다.

<x:choose>
    <x:when select="$output//item/category = 'Sneakers'">
        Item category is Sneakers
    </x:when>
    <x:when select="$output//item/category = 'Heels'">
        Item category is Heels
    </x:when>
    <x:otherwise>
       Unknown category.
    </x:otherwise>
</x:choose>

5.7. <x : transform><x : param> 태그

<x : 변환> 태그로이를 변환 XSL (Extensible Stylesheet Language)을 적용하여 JSP 내의 XML 문서.

변환 할 XML 문서 또는 문자열doc 속성에 제공되고 적용 할 XSL <x : transform> 태그 xslt 속성에 전달됩니다 .

<x : param> 태그는 <x : transform> 태그 의 하위 태그이며 변환 스타일 시트에서 매개 변수를 설정하는 데 사용됩니다.

간단한 사용 사례는 다음과 같은 형식입니다.

<c:import url="/items_xml" var="xslt"/>
<x:transform xml="${xmltext}" xslt="${xslt}">
    <x:param name="bgColor" value="blue"/>
</x:transform>

6. SQL 태그

JSTL SQL 태그 라이브러리는 관계형 데이터베이스 작업을 수행하기위한 태그를 제공합니다 .

JSTL SQL 태그를 활성화하기 위해 JSP에 taglib를 추가합니다.

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

JSTL SQL 태그는 MySQL, Oracle 및 Microsoft SQL Server를 포함한 다양한 데이터베이스를 지원합니다.

다음으로 사용 가능한 다양한 SQL 태그를 살펴 보겠습니다.

6.1. <SQL : setDataSource> 태그

<SQL : setDataSource는> 태그는 JDBC 구성 변수를 정의하기 위해 사용된다.

이러한 구성 변수는 아래와 같이 <sql : setDataSource> 태그 드라이버, URL, 사용자, 암호dataSource 속성에 보관 됩니다.

<sql:setDataSource var="dataSource" driver="com.mysql.cj.jdbc.Driver"
  url="jdbc:mysql://localhost/test" user="root" password=""/>

위의 var 속성은 연관된 데이터베이스를 식별하는 값을 보유합니다.

6.2. <SQL : 쿼리> 태그

<SQL : 쿼리> 태그의에 정의 된 범위의 변수에 저장된 결과와 함께 SQL SELECT 문을 실행하는 데 사용됩니다 var에 속성. 일반적으로 다음과 같이 정의합니다.

<sql:query dataSource="${dataSource}" var="result">
    SELECT * from USERS;
</sql:query>

<sql : query> 태그의 sql 속성은 실행할 SQL 명령을 보유합니다. 기타 속성에는 maxRows , startRowdataSource가 있습니다.

6.3. <SQL : 업데이트> 태그

<SQL : 업데이트> 태그와 유사하다에 <SQL : 쿼리> 태그 만 실행하는 반환 값을 필요로하지 않는 경우에만 SQL INSERT, UPDATE 또는 DELETE 작업을.

사용 예는 다음과 같습니다.

<sql:update dataSource="${dataSource}" var="count">
    INSERT INTO USERS(first_name, last_name, email) VALUES
      ('Grace', 'Adams', 'gracea@domain.com');
</sql:update>

<sql : update> 태그의 var 속성은 sql 속성에 지정된 SQL 문에 의해 영향을받은 행 수를 보유 합니다.

6.4. <SQL : PARAM> 태그

<SQL : PARAM> 태그 내에서 사용할 수있는 서브 태그는 <SQL : 검색어> 또는 <SQL : 업데이트> 태그는이 같은 SQL 문에 값 자리 값을 제공하려면

<sql:update dataSource = "${dataSource}" var = "count">
    DELETE FROM USERS WHERE email = ?
    <sql:param value = "gracea@domain.com" />
</sql:update>

<sql : param> 태그에는 단일 속성이 있습니다. 제공 할 값 을 보유하는 값입니다.

6.5. <SQL : dateParam> 태그

<SQL : dateParam이> 태그 내에서 사용되는 : <쿼리 SQL> 또는 <갱신 SQL> SQL 문에서 값의 자리 표시 자에 대한 날짜 및 시간 값을 제공하는 태그입니다.

JSP에서 다음과 같이 정의 할 수 있습니다.

<sql:update dataSource = "${dataSource}" var = "count">
    UPDATE Users SET registered = ? WHERE email = ?
    <sql:dateParam value = "<%=registered%>" type = "DATE" />
    <sql:param value = "<%=email%>" />
</sql:update>

<sql : param> 태그 와 마찬가지로 <sql : dateParam> 태그에는 날짜, 시간 또는 타임 스탬프 (날짜 및 시간) 중 하나 일 수 있는 추가 유형 속성이있는 값 속성이 있습니다 .

6.6. <SQL : 거래> 태그

<SQL : 트랜잭션이> 태그가 JDBC를 만드는 데 사용되는 트랜잭션을 같이 그룹화하여 운영 <SQL : 쿼리><갱신 SQL> 과 같이 함께 태그 :

<sql:transaction dataSource = "${dataSource}">
    <sql:update var = "count">
        UPDATE Users SET first_name = 'Patrick-Ellis' WHERE
          email='patrick@baeldung.com'
    </sql:update>
    <sql:update var = "count">
        UPDATE Users SET last_name = 'Nelson' WHERE 
          email ='patrick@baeldung.com'
    </sql:update>
    <sql:update var = "count">
        INSERT INTO Users(first_name, last_name, email) 
          VALUES ('Grace', 'Adams', 'gracea@domain.com');
    </sql:update>
</sql:transaction>

<sql : transaction> 태그는 모든 데이터베이스 작업이 성공적으로 처리되거나 (커밋 됨) 오류가 발생한 경우 모든 작업이 정상적으로 실패 (롤백)되도록합니다.

7. JSTL 기능

JSTL 메소드는 JSP 내에서 데이터 조작을위한 유틸리티입니다. 일부 함수는 다른 데이터 유형을 사용하지만 대부분은 문자열 조작 전용입니다 .

JSP에서 JSTL 메소드를 사용하려면 페이지에 taglib를 추가합니다.

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

이러한 기능과 사용 방법을 살펴 보겠습니다.

7.1. fn : contains ()fn : containsIgnoreCase ()

FN은 : 포함 () 메소드가 평가 문자열 이 주어진 다음과 같은 하위 문자열이 포함되어 있는지 확인하는 :

<c:set var = "string1" value = "This is first string"/>
<c:if test = "${fn:contains(string1, 'first')}">
    <p>Found 'first' in string<p>
</c:if>

FN은 () 포함 함수는 두 개의 소요 문자열 인수를; 첫 번째는 소스 문자열 이고 두 번째 인수는 하위 문자열입니다. 평가 결과에 따라 부울을 반환합니다.

FN : containsIgnoreCase ()는 함수의 대소 문자 구별 변종 FN ()를 함유 방식과 같이 사용할 수있다 :

<c:if test = "${fn:containsIgnoreCase(string1, 'first')}">
    <p>Found 'first' string<p>
</c:if>
<c:if test = "${fn:containsIgnoreCase(string1, 'FIRST')}">
    <p>Found 'FIRST' string<p>
</c:if>

7.3. FN : endsWith () 함수

FN : endsWith () 함수는 평가 문자열 의 접미사가 다른 문자열과 일치 여부를 확인 할 수 있습니다. 두 가지 인수가 필요합니다. 첫 번째 인수는 접미사가 테스트되는 문자열 이고 두 번째 인수는 테스트 된 접미사입니다.

다음과 같이 정의 할 수 있습니다.

<c:if test = "${fn:endsWith(string1, 'string')}">
    <p>String ends with 'string'<p>
</c:if>

7.4. FN : escapeXml () 함수

FN : escapeXML () 함수는 입력에서 XML 마크 업 탈출하는 데 사용되는 문자열 과 같은를 :

<p>${fn:escapeXml(string1)}</p>

7.5. FN : 같이 IndexOf () 함수

FN : 같이 IndexOf () 스루 기능 외모 문자열 반환 주어진 문자열의 첫 번째 항목의 인덱스입니다.

두 가지 인수가 필요합니다. 첫 번째는 소스 문자열 이고 두 번째 인수는 일치하고 첫 번째 발생을 반환 할 하위 문자열입니다.

fn : indexOf () 함수는 정수를 반환하며 다음과 같이 사용할 수 있습니다.

<p>Index: ${fn:indexOf(string1, "first")}</p>

7.6. FN : 가입 () 함수

FN은 ()에 가입 기능이 단일로 어레이의 모든 요소를 연결 한 문자열 과 같이 사용할 수있다 :

<c:set var = "string3" value = "${fn:split(string1, ' ')}" />
<c:set var = "string4" value = "${fn:join(string3, '-')}" />

7.7. FN : 길이 () 함수

FN : 길이 () 함수는 지정된 컬렉션 또는 지정된 문자 수의 요소 수를 반환 문자열.

FN : 길이 () 함수는 하나의 소요 객체 중 하나를 수집하거나 할 수 있습니다 문자열 반환이 같은 정수를 :

<p>Length: ${fn:length(string1)}</p>

7.8. FN : 대체 () 함수

FN : 대체 () 함수가 서로 문자열에 문자열의 모든 항목을 대체 문자열입니다.

세 가지 인수가 필요합니다. 소스 문자열, 문자열은 소스와에서 조회 할 문자열 의인이 같은 하위 문자열과 일치하는 항목을 모두 바꾸려면 :

<c:set var = "string3" value = "${fn:replace(string1, 'first', 'third')}" />

7.9. FN : 분할 () 함수

FN : 분할 () A의 기능을 수행 분할 작업 문자열 지정된 구분 기호를 사용하여. 다음은 사용 예입니다.

<c:set var = "string3" value = "${fn:split(string1, ' ')}" />

7.10. FN : startsWith () 함수

FN : startsWith는 () 함수를 확인 a의 접두사 문자열 진정한 반환을 그것은이 같은 하위 문자열 주어진 일치하는 경우 :

<c:if test = "${fn:startsWith(string1, 'This')}">
    <p>String starts with 'This'</p>
</c:if>

7.11. FN : 하위 문자열 () 함수

FN : 하위 문자열 () 함수는 소스에서 문자열 생성 문자열 지정된 시작 및 종료 인덱스에 있습니다. 다음과 같이 사용합니다.

<c:set var = "string3" value = "${fn:substring(string1, 5, 15)}" />

7.12. FN : substringAfter () 함수

FN : substringAfter () 함수 검사 소스 문자열 주어진 문자열과 복귀 문자열 즉시 지정된 부분 최초로 출현 후.

다음과 같이 사용합니다.

<c:set var = "string3" value = "${fn:substringAfter(string1, 'is')}" />

7.13. FN : substringBefore () 함수

FN : substringBefore () 함수를 확인 소스 문자열 주어진 문자열 반환에 대한 문자열 단지 지정된 하위 문자열의 첫 항목 전에.

JSP 페이지에서는 다음과 같이 표시됩니다.

<c:set var = "string3" value = "${fn:substringBefore(string1, 'is')}" />

7.14. FN :와 toLowerCase () 함수

FN : 소문자 ()에 A의 모든 문자 기능 변환 문자열 을 소문자와 수는 다음과 같이 사용할 수 있습니다 :

<c:set var = "string3" value = "${fn:toLowerCase(string1)}" />

7.15. FN :를 toUpperCase () 함수

FN :를 toUpperCase () 함수 변환이 모든 문자 문자열 대문자로 :

<c:set var = "string3" value = "${fn:toUpperCase(string1)}" />

7.16. FN : 트림 () 함수

FN : 트림 () 이전과에서 공백을 후행 기능 제거합니다 문자열 :

<c:set var = "string1" value = "This is first String    "/>

9. 결론

이 광범위한 기사에서 다양한 JSTL 태그와이를 사용하는 방법을 살펴 보았습니다.

평소처럼 코드 스 니펫은 GitHub 에서 찾을 수 있습니다 .