Dev/frontend

표준 태그 라이브러리 (JSTL) - 4. 함수

Luigi.yoon 2017. 11. 1. 17:20

4. 함수

JSTL은표현언어에서사용할수있는함수를제공하며이들함수는 표와같다.

함수

설명

length(obj)

obj List와같은 Collection 인경우저장된항목의개수를리턴하고,

obj가문자열일경우문자열의길이를리턴한다.

toUpperCase(str)

str을대문자로변환한다.

toLowerCase(str)

str을소문자로변환한다.

substring(str, idx1, idx2)

str.substring(idx1, idx2)의결과를리턴한다.

idx2 -1 일경우 str.substring(idx1)과동일하다.

substringAfter(str1, str2)

str1에서 str1에포함되어있는 str2 이후의문자열을구한다.

substringBefore(str1, str2)

str1에서 str1에포함되어있는 str2 이전의문자열을구한다.

trim(str)

str 좌우의공백문자를제거한다.

replace(str, src,dest)

str에있는 src dest로변환한다.

indexOf(str1, str2)

str1에서 str2가위치한인덱스를구한다.

startsWith(str1, str2)

str1 str2로시작할경우 true, 그렇지않을경우 false를리턴한다.

endsWith(str1, str2)

str1 str2로끝나는경우 true, 그렇지않을경울 false를리턴한다.

contains(str1, str2)

str1 str2를포함하고있을경우 true를리턴한다.

containsIgnoreCase(str1, str2)

대소문자구분없이 str1 str2를포함하고있을경우 true를리턴한다.

split(str1, str2)

str2로명시한글자를기준으로 str1을분리해서배열로리턴한다.

join(array, str2)

array에저장된문자열을합친다. 이때각문자열사이에는 str2이붙는다.

escapeXml(str)

XML의객체참조에해당하는특수문자를처리한다.

예를들어, ‘&’ ‘&’로변환한다.

JSTL 함수를사용하는예

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

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

<c:set var="str1" value="Functions <태그>를 사용합니다." />

<c:set var="str2" value="사용" />

<c:set var="tokens" value="1,2,3,4,5,6,7,8,9,10" />

length(str1) = ${fn:length(str1) }  <br/>

toUpperCase(str1) = "${fn:toUpperCase(str1)}"  <br/>

toLowerCase(str1) = "${fn:toLowerCase(str1)}"  <br/>

substring(str1, 3, 6) = "${fn:substring(str1, 3, 6)}"  <br/>

substringAfter(str1, str2) = "${fn:substringAfter(str1, str2) }"  <br/>

substringBefore(str1, str2) = "${fn:substringBefore(str1, str2) }"  <br/>

trim(str1) = "${fn:trim(str1)}"  <br/>

replace(str1, src, dest) = "${fn:replace(str1, " ", "-")}"  <br/>

indexOf(str1, str2) = "${fn:indexOf(str1, str2) }"  <br/>

startsWith(str1, str2) = "${fn:startsWith(str1, 'Fun')}"  <br/>

endsWith(str1, str2) = "${fn:endsWith(str1, "합니다.")}"  <br/>

contains(str1, str2) = "${fn:contains(str1, str2)}"  <br/>

containsIgnoreCase(str1, str2) = "${fn:containsIgnoreCase(str1, str2)}"  <br/>

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

join(array, "-") = "${fn:join(array, "-")}" <br/>

escapeXml(str1) = "${fn:escapeXml(str1)}" <br/>

실행결과

length(str1) = 22

toUpperCase(str1) = "FUNCTIONS <태그>를사용합니다."

toLowerCase(str1) = "functions <태그>를사용합니다."

substring(str1, 3, 6) = "cti"

substringAfter(str1, str2) = "합니다."

substringBefore(str1, str2) = "Functions <태그> "

trim(str1) = "Functions <태그>를사용합니다."

replace(str1, src, dest) = "Functions-<태그>-사용합니다."

indexOf(str1, str2) = "16"

startsWith(str1, str2) = "true"

endsWith(str1, str2) = "true"

contains(str1, str2) = "true"

containsIgnoreCase(str1, str2) = "true"

join(array, "-") = "1-2-3-4-5-6-7-8-9-10"

escapeXml(str1) = "Functions <태그>를사용합니다."