jstl 내장함수

JSTL functions은 JSTL에서 제공하는 각종 함수를 사용해서 문자열이나, 컬렉션들을 처리함.
fn태그는 단독으로 사용할 수 없고 EL 표현식 내에서 사용해야함.
like ${fn:length(...)}

jsp 페이지 시작점에 다음 태그로 선언 해줘야 사용 할 수 있음.

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

 


 

boolean contains(String sting, String substring)

string이 substring을 포함하면 return true.

boolean containsIgnoreCase(String string, String substring)

대소문자에 관계없이, string이 substring을 포함하면 return true.

 

  ${fn:contains("helloworld", "world")} // true

  ${fn:containsIgnoreCase("hello world!", "WoRLd")} // true

 


 

boolean startsWith(String string, String prefix)

string이 prefix로 시작하면 return true.

boolean endsWith(String string, String substring)

string이 suffix로 끝나면 return true.

 

  ${fn:startsWith("hello world!", "ld!")} // false

  ${fn:endsWith("hello world!", "ld!")} // true

 


 

String escapeXml(String string)

string에서 XML, HTML의 < >& ' " 문자들을 각각 < > & ' "로 치환하여 리턴.

 

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

 


 

int indexOf(String string, String substring)

string에서 substring이 처음으로 나타나는 인덱스 리턴.

 

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

 


 

String[] split(String string, String separator)

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

String join(String[] strings, String separator)

배열 요소들을 separator를 구분자로 하여 모두 연결해서 리턴.

 

// 예시를 위한 배열 생성
<c:set var="texts" value="${fn:split('Hi My name is waldo', ' ')}"/>
<c:out value="${fn:join(texts, '-')}"/> // Hi-My-name-is-waldo

 


 

int length(Object item)

item이 배열이나 컬렉션이면 요소의 개수를, 문자열이면 문자의 개수를 리턴.

 

<c:set var="texts" value="${fn:split('Hi My name is waldo', ' ')}"/>

${fn:length(texts)} // 5

${fn:length("123456")} // 6

 


 

String replace(String string, String before, String after)

string 내에 있는 before 문자열을 after 문자열로 모두 바꿔서 리턴.

 

${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;')} // 엔터와 공백 처리

 


 

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이 나타나기 이전의 부분에 있는 문자열을 리턴.

 

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

 


 

String toLowerCase(String string)

string을 모두 소문자로 치환.

String toUpperCase(String string)

string을 모두 대문자로 치환.

 

<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

 


 

String trim(String string)

string 앞뒤의 공백을 모두 제거.

 

<c:set var="text" value="          blank spcae          "/>
${fn:length(text)}  // 31

<c:set var="text" value="${fn:trim(text)}"/>
${fn:length(text)}  // 11
728x90
반응형

[JSP, JSTL] fn function 정리

jstl function (jstl fn) 정리

jsp 파일 최 생단에 다음과 같이 jstl functions를 사용하겠다고 선언 해야 함.

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

함수들은 단독으로 사용할 수 없고 EL 표현식과 함께 사용해야 함.

  ${fn:length(list)}
  ${fn:contains(str, str)}

fn:contains(string, substr)

string이 substr을 포함하면 return true

fn:containsIgnoreCase(string, substr)

대소문자 관계없이 string이 substr을 포함하면 return true

fn:startsWith(string, prefix)

string이 prefix로 시작하면 return True

fn:endsWith(string, suffix)

string이 suffix로 끝나면 return True

fn:escapeXml(string)

string에 XML과 HTML에서 < >& ' " 문자들이 있으면, XML엔티티 코드로 바꿔준뒤 문자열 반환

fn:indexOf(string, substr)

string에서 substr이 처음으로 나타나는 인덱스 반환

fn:split(string, separator)

string내의 문자열 separetor에 따라 나눈 배열로 반환

fn:join(array, separator)

array요소들을 separator를 구분자로 하여 연결해서 반환

fn:length(item)

item이 배열이나 컬렉션이면 요소의 개수를 문자열이면 문자의 개수를 반환

fn:replace(string, before, after)

string내에 있는 before 문자열을 after 문자열로 모두 변경해서 반환

fn:substring(string, begin, end)

string에서 begin인덱스에서 시작해서 end인덱스에 끝나는 부분의 문자열 반환

fn:substringAfter(string, substr)

string에서 substr이 나타나는 이후의 문자열 반환

fn:substringBefore(string, substr)

string에서 substr이 나타나는 이전의 문자열 반환

fn:toLowerCase(string)

string을 모두 소문자로 변경 후 리턴

fn:toUpperCase(string)

string을 모두 대문자로 변경 후 리턴

fn:trim(string)

string앞뒤의 공백을 모두 제거한 후 반환

728x90
반응형

[JSP, JSTL] forEach 잘 사용하기

Spring 개발을 하다 보면 jstl 의 forEach 를 많이 사용하게 된다.

간단하지만 varStatus 속성 사용을 잘 하면 보다 편하게 개발할 수 있는것 같아서 남겨본다.


<c:forEach items="${list}" var="item" varStatu="i">
  current (현재 객체)       : ${i.current}<br/>
  index (0부터의 순서)      : ${i.index}<br/>
  count (1부터의 순서)      : ${i.count}<br/>
  first (루프의 처음인가)   : ${i.first}<br/>
  last (루프의 마지막인가)  : ${i.last}<br/>
  begin (루프의 시작값)     : ${i.begin}<br/>
  end (끝값)                : ${i.end}<br/>
  step (증가값)             : ${i.step}<br/>
</c:forEach\>
728x90
반응형

+ Recent posts