목차

Freemarker

Eclipse Editor 등록

null 검사

- null이 아닌가?(아니면 true)
<#if aVariable??>

- 문자열의 경우 null이거나, empty인가?
<#if aVariable?has_content>
혹은
<#if aVariable!?size > 0 or aVariable!?length > 0>

- Missing Value Operator. someValue가 존재하는가?
<#if someValue??>
  ...

- someValue와 someProp이 모두 존재해야 true
<#if (someValue.somePrope)??> 

null 기본값

someValue!"기본값"

- 아래 구문은 작동하지 않는다. "'기본값' == '다른값'"을 기본값 표현식으로 간주하기 때문.
<#if someValue!'기본값' == '다른값'> 
-> 다음처럼 변경할 것
<#if (someValue!'기본값') == '다른값'>


colors!['red', 'blue', 'green']

- someValue가 null이라도 자동으로 기본값으로 지정된다.
(someValue.someProp)!'기본값'

Macro

Java 코드로 만드는 지시자(Directives)

Macro/Function 인자 null 문제

TemplateMethodModel

TemplateDirectiveModel

ObjectWrapper

ObjectWrapperAndUnwrapper

BeansWrapper

설정

숫자 포맷팅

Template Cache

캐시를 지정해 속도를 높여야 한다. Template loading 참조.

cfg.setTemplateUpdateDelayMilliseconds(3600000L); // 1hour 템플릿 파일 갱신 여부 체크 주기
cfg.setCacheStorage(new MruCacheStorage(500, 5000)); // strong 500, soft 5000