본문 바로가기
study/java&JSP

JSTL FUNCTION

by 휘루걸음 2015. 4. 28.
728x90
반응형

JSTL(JSP Standard Tag Library)은 JSP 페이지에서 사용할 수 있는 표준 태그 라이브러리입니다. 이 라이브러리는 다양한 기능을 제공하는데, 그 중에는 함수(function) 태그도 포함되어 있습니다. JSTL 함수를 사용하면 다양한 문자열 조작, 형식 지정, 컬렉션 처리 등을 쉽게 수행할 수 있습니다.

예를 들어, fn 접두사를 사용하여 JSTL 함수를 호출할 수 있습니다. 몇 가지 일반적인 JSTL 함수의 예시를 살펴보겠습니다:

728x90

문자열 조작 함수

  • toUpperCase: 문자열을 대문자로 변환합니다.
    ${fn:toUpperCase('hello')}​
  • toLowerCase: 문자열을 소문자로 변환합니다.
    ${fn:toLowerCase('WORLD')}​
  • substring: 문자열을 자릅니다.
    ${fn:substring('Hello World', 0, 5)}​

숫자 형식 지정 함수

  • formatNumber: 숫자를 형식에 맞게 포맷합니다.
    ${fn:formatNumber(12345.678, '#,##0.00')}
     

컬렉션 관련 함수

  • contains: 컬렉션에 특정 요소가 포함되어 있는지 확인합니다.
    ${fn:contains(arrayList, 'element')}​

 

  • join: 배열의 요소들을 결합합니다.
    ${fn:join(stringArray, ', ')}​
     

 

기타 함수

  • escapeXml: XML 특수 문자를 이스케이프합니다.
    ${fn:escapeXml('<tag>')}​

 

  • trim: 문자열의 앞뒤 공백을 제거합니다.
    ${fn:trim(' trim me ')}​
     

이러한 함수들을 활용하여 JSTL을 통해 간편하게 문자열 처리, 형식 지정, 컬렉션 조작 등 다양한 작업을 수행할 수 있습니다. 각 함수의 파라미터와 사용 방법을 익혀서 원하는 대로 활용할 수 있습니다.

 


출처 : http://noritersand.tistory.com/260
Function, 함수

기능: 컬렉션 처리,  String 처리

접두어(Prefix) : fndirective : 

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

 

JSTL functions은 JSTL에서 제공하는 각종 함수를 사용해서 문자열이나, 컬렉션들을 처리한다.

fn태그는 단독으로 사용할 수 없고 EL 표현식 내에서 사용한다.

 

 

boolean contains( String sting, String substring ): 

string이 substring을 포함하면 true값을  리턴 한다.boolean containsIgnoreCase( String string, String substring )

: 대소문자에 관계없이, string이 substring을 포함하면 true 리턴

1
2
${fn:contains("helloworld""world")} // true
${fn:containsIgnoreCase("hello world!""WoRLd")} // true
cs

 

boolean startsWith( String string, String prefix ): string이 prefix로 시작하면 true값을 리턴 한다.

boolean endsWith( String string, String substring ): string이 suffix로 끝나면 true값을 리턴 한다. 

1
2
${fn:startsWith("hello world!""ld!")} // false
${fn:endsWith("hello world!""ld!")} // true
cs

 

String escapeXml( String string )

: string에서 XML, HTML의 < >& ' " 문자들을 각각 &lt; &gt; &amp; &#039; &#034;로 바꿔준 

뒤 문자열을 리턴 한다. 

1
<c:out value="${fn:escapeXml('<>')}"/> // &lt;&gt;
cs

 

int indexOf( String string, String substring): string에서 substring이 처음으로  나타나는 인덱스를 리턴 한다.

1
${fn:indexOf("abcdefg""f")} // 5
cs


String[] split( String string, String separator )

: string 내의 문자열을 separator에 따라 잘라내서 잘려진 문자열들을 배열로 리턴한다.

String join( String[], String separator ): 배열 요소들을 separator를 구분자로 하여 모두 연결해서 리턴 한다.

1
2
3
4
<c:set var="texts" value="${fn:split('Hi My name is waldo', ' ')}"/>
<c:out value="${fn:join(texts, '-')}"/> // Hi-My-name-is-waldo
 
// jstl이나 el에 문자열 리터럴로 배열을 직접 생성하는 예는 검색결과가 없다. 대부분 fn:split이나 jsp:useBean을 사용했다.
cs

 

int length( Object  item ): item이 배열이나 컬렉션이면 요소의 개수를, 문자열이면 문자의 개수를 리턴 한다.

1
2
3
<c:set var="texts" value="${fn:split('Hi My name is waldo', ' ')}"/>
${fn:length(texts)} // 5
${fn:length("123456")} // 6
cs

 

String replace( String string, String before, String after ): string 내에 있는 before 문자열을 after 문자열로 모두 바꿔서 리턴 한다.

1
2
3
4
5
6
7
8
9
10
${fn:replace("hi hello""hello""hi")} // hi hi
 
// replace 함수는 HTML에서 공백과 줄바꿈을 표현할 때 사용할 수 있다.
${fn:replace("hell            o          o       ~"" ""&nbsp;")} // hell            o          o       ~
 
<% pageContext.setAttribute("enter","\n"); %>
${fn:replace(info.text, enter, '<br/>'// 엔터처리
 
<% pageContext.setAttribute("enter","\n"); %>
${fn:replace(fn:replace(fn:escapeXml(info.content_txt), enter, '<br/>') , ' ''&nbsp;')} // 엔터와 공백 처리
cs

 

String substring( String string, int begin, int end )

: string에서 begin 인덱스에서 시작해서 end 인덱스에 끝나는 부분의 문자열을 리턴.

String substringAfter( String string, String substring ): string에서 substring이 나타나는 이후의 부분에 있는 문자열을 리턴 한다.

String substringBefore( String string, String substring ): string에서 substring이 나타나기 이전의 부분에 있는 문자열을 리턴 한다.

1
2
3
${fn:substring(text, 319)} // My name is waldo
${fn:substringAfter(text, "Hi ")} // My name is waldo
${fn:substringBefore(text, "waldo")} // Hi My name is
cs

 

String

 toLowerCase( String string ) string을 모두 소문자로 바꿔 리턴한다.

String toUpperCase( String string ) string을 모두 대문자로 바꿔 리턴한다.

1
2
3
<c:set var="text" value="Hi My name is waldo"/>
${fn:toLowerCase(text)} // hi my name is waldo
${fn:toUpperCase(text)} // HI MY NAME IS WALDO
cs

 

String trim( String string )

: 

string 앞뒤의 공백을 모두 제거하여 리턴 한다. 

1
2
3
4
<c:set var="text" value="          blank spcae          "/>
${fn:length(text)}  // 31
<c:set var="text" value="${fn:trim(text)}"/>
${fn:length(text)}  // 11
cs

 

728x90
반응형

'study > java&JSP' 카테고리의 다른 글

JAVA string 포맷 kst date 변환  (0) 2015.04.21
날짜형식  (0) 2015.02.24
java method  (0) 2011.06.16
java date 날짜 구하기  (0) 2011.05.17
ibatis - queryForObject null 반환  (0) 2011.01.18