JSTL(JSP Standard Tag Library)은 JSP 페이지에서 사용할 수 있는 표준 태그 라이브러리입니다. 이 라이브러리는 다양한 기능을 제공하는데, 그 중에는 함수(function) 태그도 포함되어 있습니다. JSTL 함수를 사용하면 다양한 문자열 조작, 형식 지정, 컬렉션 처리 등을 쉽게 수행할 수 있습니다.
예를 들어, fn 접두사를 사용하여 JSTL 함수를 호출할 수 있습니다. 몇 가지 일반적인 JSTL 함수의 예시를 살펴보겠습니다:
문자열 조작 함수
- 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의 < >& ' " 문자들을 각각 < > & ' "로 바꿔준
뒤 문자열을 리턴 한다.
1
|
<c:out value="${fn:escapeXml('<>')}"/> // <>
|
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 ~", " ", " ")} // 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/>') , ' ', ' ')} // 엔터와 공백 처리
|
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, 3, 19)} // 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 |
'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 |