1. substring
사용법 : exp?substring(from, toExclusive)
            exp?sbustring(from)

설명 : 문자열의 부분 내용을 출력한다. from은 첫번째 잘라낼 글자의 인덱스 위치이다. 
         toExclusive 는 잘라낼 마지막 위치이다. 
         가질수 있는 범위는 0 에서 스트링의 최종길이까지 가질 수 있다.

예제 : 
- ${'abc'?substring(0)}
- ${'abc'?substring(1)}
- ${'abc'?substring(2)}
- ${'abc'?substring(3)}

- ${'abc'?substring(0, 0)}
- ${'abc'?substring(0, 1)}
- ${'abc'?substring(0, 2)}
- ${'abc'?substring(0, 3)}

- ${'abc'?substring(0, 1)}
- ${'abc'?substring(1, 2)}
- ${'abc'?substring(2, 3)}  

The output:

- abc
- bc
- c
-

-
- a
- ab
- abc

- a
- b
- c  


2. cap_first / uncap_first
사용법 : exp?cap_first, exp?uncap_first

설명 : 첫번째 글자를 대문자로 처리한다. (cap_first), 첫번째 글자를 소문자로 (uncap_first) 

예제 : 
${"  green mouse"?cap_first}
${"GreEN mouse"?cap_first}
${"- green mouse"?cap_first}  

The output:

  Green mouse
GreEN mouse
- green mouse  


3. capitalize
사용법 : exp?capitalize

설명 : 단어의 첫글자를 대문자로 변경한다.

예제 : 
${"  green  mouse"?capitalize}
${"GreEN mouse"?capitalize}  

The output:

  Green Mouse
Green Mouse  


4. date, time, datetime
사용법 :  exp?date("pattern") 
             exp?time("pattern")
             exp?datetime("pattern")
             
설명 : 날짜값을 지정된 형식으로 변환한다. 이것은 해당 지억의 locale에 따라 변환이 된다.
         반드시 포맷을 지정해야하는 것은 아니다. 지정하지 않은경우 기본 포맷이 지정될 것이다.
         만약 문자열이 적당한 형식이 아니라면, 처리는 이루어 지지 않고 에러가 난다.

예제 : 
<#assign test1 = "10/25/1995"?date("MM/dd/yyyy")>
<#assign test2 = "15:05:30"?time("HH:mm:ss")>
<#assign test3 = "1995-10-25 03:05 PM"?datetime("yyyy-MM-dd hh:mm a")>
${test1}
${test2}
${test3}  

Oct 25, 1995
3:05:30 PM
Oct 25, 1995 3:05:00 PM  


5. html
사용법 : exp?html

설명 : 문자열에 포함된 마크업 문자를, 대체문자로 변경한다.
  • < replaced with &lt;
  • > replaced with &gt;
  • & replaced with &amp;
  • " replaced with &quot;

이것은 보안을 위해 주로 사용된다. 

예제 : 

<input type=text name=user value="${user?html}" 


6. index_of
사용법 : "abcabc"?index_of("bc")
            "abcabc"?index_of("bc", 2)

설명 : 찾고자 하는 문자열이 가장 먼저 나온 위치의 인덱스를 반환한다.
         상기 사용법에 나온 처리의 결과는 1이 반환된다. 인덱스는 0부터 시작함
         두번째 사용법에 나온결과는 4가 반환된다. 즉, 2번째로 매치되는 문자열의 시작위치를 반환한다.
         2번째 파라미터값에 음수가 오면 0으로 간주하여 첫번째와 같은 결과가 나온다. 
         매칭되는 문자열이 없다면 -1이 반환된다.

7. j_string
사용법 :  exp?j_string

설명 : escape 문자를 자바에서 사용하는 escape 표현 문자로 바꿔서 출력한다.

예제 : 
<#assign beanName = 'The "foo" bean.'>
String BEAN_NAME = "${beanName?j_string}";  

will output:

String BEAN_NAME = "The \"foo\" bean.";  


8. length
설명 : 해당 문자열의 총 길이를 반환한다.

9. lower_case
설명 : 문자열을 소문자로 변형한다.

10. left_pad
사용법 : exp?left_pad(공백길이)
            exp?left_pad(공백길이, "대체문자")

설명 : 해당 문자열 앞에 공백길이를 추가한다. 
         만약 문자가 공백길이보다 작다면, 공백을 추가하지 않는다.
         두번째 상요법은 해당 문자열을 대체문자로 채워넣는다.

예제 : 
[${""?left_pad(5)}]
[${"a"?left_pad(5)}]
[${"ab"?left_pad(5)}]
[${"abc"?left_pad(5)}]
[${"abcd"?left_pad(5)}]
[${"abcde"?left_pad(5)}]
[${"abcdef"?left_pad(5)}]
[${"abcdefg"?left_pad(5)}]
[${"abcdefgh"?left_pad(5)}]  

will output this:

[     ]
[    a]
[   ab]
[  abc]
[ abcd]
[abcde]
[abcdef]
[abcdefg]
[abcdefgh]  


 

[${""?left_pad(5, "-")}]
[${"a"?left_pad(5, "-")}]
[${"ab"?left_pad(5, "-")}]
[${"abc"?left_pad(5, "-")}]
[${"abcd"?left_pad(5, "-")}]
[${"abcde"?left_pad(5, "-")}]  

will output this:

[-----]
[----a]
[---ab]
[--abc]
[-abcd]
[abcde]  



[${""?left_pad(8, ".oO")}]
[${"a"?left_pad(8, ".oO")}]
[${"ab"?left_pad(8, ".oO")}]
[${"abc"?left_pad(8, ".oO")}]
[${"abcd"?left_pad(8, ".oO")}]  

will output this:

[.oO.oO.o]
[.oO.oO.a]
[.oO.oOab]
[.oO.oabc]
[.oO.abcd]  


11. right_pad
사용법 : left_pad와 유사

설명 : left_pad와 동일하며, 오른쪽에 공백 및 대체문자가 들어온다.

예제 : 
[${""?right_pad(5)}]
[${"a"?right_pad(5)}]
[${"ab"?right_pad(5)}]
[${"abc"?right_pad(5)}]
[${"abcd"?right_pad(5)}]
[${"abcde"?right_pad(5)}]
[${"abcdef"?right_pad(5)}]
[${"abcdefg"?right_pad(5)}]
[${"abcdefgh"?right_pad(5)}]

[${""?right_pad(8, ".oO")}]
[${"a"?right_pad(8, ".oO")}]
[${"ab"?right_pad(8, ".oO")}]
[${"abc"?right_pad(8, ".oO")}]
[${"abcd"?right_pad(8, ".oO")}]  

This will output this:

[     ]
[a    ]
[ab   ]
[abc  ]
[abcd ]
[abcde]
[abcdef]
[abcdefg]
[abcdefgh]

[.oO.oO.o]
[aoO.oO.o]
[abO.oO.o]
[abc.oO.o]
[abcdoO.o]  


12. contains
사용법 : "piceous"?contains("ice")

설명 : 상단 사용법에 ice라는 단어가 존재하므로 해당 내용은 true가 된다.

예제 : 
<#if "piceous"?contains("ice")>It contains "ice"</#if>  

This will output:

It contains "ice"  


13. matches
사용법 : "fooo"?matches('fo*')

설명 : 해당 문자가 정규식 표현에 맞는지 검사한다. 정규식 표현에 맞는경우 true를 반환한다.
         "fooo"?matches('fo*')는 true를 반환한다. 그러나.
         "fooo bar"?matches('fo*')는 false를 반환한다. *는 이전 문자로 연속된 문자가 나타난다는 의미이므로.

예제 : 
<#if "fxo"?matches("f.?o")>Matches.<#else>Does not match.</#if>

<#assign res = "foo bar fyo"?matches("f.?o")>
<#if res>Matches.<#else>Does not match.</#if>
Matching sub-strings:
<#list res as m>
- ${m}
</#list>  

will print:

Matches.

Does not match.
Matching sub-strings:
- foo
- fyo  

만약 정규식이 그룹('(')로 되어 있다면, groups 을 참조하여 정규식 표현을 검사한다.

<#assign res = "aa/rx; ab/r;"?matches("(\\w[^/]+)/([^;]+);")>
<#list res as m>
- ${m} is ${m?groups[1]} per ${m?groups[2]}
</#list>  

This will print:

- aa/rx; is aa per rx
- ab/r; is ab per r  


14. replace
사용법 : ${"this is a car acarus"?replace("car", "bulldozer")}

설명 : 해당 문자열에서 매칭되는 문자열을 대체 문자열로 바꿔준다.
         다만 단어 단위로 바꾸는것이 아니라. 매칭되는것 모두를 바꾼다.
         상기 예제 결과는 this is a bulldozer abulldozerus 가 되어 car라는 글자영역을 무조건 bulldozer로 바꿨다.

예제 : 
${"this is a car acarus"?replace("car", "bulldozer")}  

will print:

this is a bulldozer abulldozerus  

변환은 왼쪽에서 오른쪽의 순서대로 변환된다.

${"aaaaa"?replace("aaa", "X")}  

will print:

Xaa  


"foo"?replace("","|") 는 "|f|o|o|" 로 변환된다.

15. url
사용법 : exp?url
            exp?url(charset)

설명 : 해당 문자열을 url 표현형식으로 변경된 문자열로 바꾼다.

예제 : 
<#assign x = 'a/b c'>
${x?url}  

단, escaping 문자는 US-ASCII라고 가정하고 변환이 이루어 진다.

a%2Fb%20c  

<a href="foo.cgi?x=${x?url('ISO-8895-2')}">foo</a> 로 사용할수도 있다.


16. split
사용법 : exp?split("기준 문자열")

설명 : 해당 문자열을, 잘라낼 기준 문자열을 바탕으로 잘라서 리스트화 한다.

예제 : 
<#list "someMOOtestMOOtext"?split("MOO") as x>
- ${x}
</#list>  

will print:

- some
- test
- text  

Note that it is assumed that all occurrences of the separator is before a new item, thus:

<#list "some,,test,text,"?split(",") as x>
- "${x}"
</#list>  

will print:

- "some"
- ""
- "test"
- "text"
- ""  


17. starts_with
설명 : 해당 문자열이 원하는 문자열로 시작되는지 확인한다. 
         "redhead"?starts_with("red") --> true반환
         "red"?starts_with("red")  --> true반환

18. trim
설명 : 해당 문자열의 앞, 뒤 공백문자를 제거한다.

예제 : 
(${"  green mouse  "?trim})  

The output:

(green mouse)  


19. word_list
설명 : 문자열에 나타난 단어들을 나열한다. 이것은 공백문자를 기준으로 잘라내는 것이다.

예제 : 
<#assign words = "   a bcd, .   1-2-3"?word_list>
<#list words as word>[${word}]</#list>  

will output:

[a][bcd,][.][1-2-3]  


출처 :http://freemarker.sourceforge.net/docs/ref_builtins_string.html#ref_builtin_substring


'프레임워크 > FreeMarker' 카테고리의 다른 글

프리마커 Date형식을 변환 할때  (0) 2015.11.20
프리마커 문법  (0) 2015.11.20
Freemarker 문법  (0) 2015.11.20
Freemarker 소개  (0) 2015.11.06
FreeMarker 템플릿 엔진 적용하기  (0) 2015.10.16
블로그 이미지

532

처음 프로그래밍을 시작한 개발자들은 Hello World!를 기억 할 것이다. Hello world가 Hell World가 될 줄 몰랐던 한 개발자의 이야기. 게시글의 출처를 표기하며, 출처를 남기지 않고 펌을 하는것에 대해 법적 책임을 묻지 않습니다.

,