1. null 체크는 ??로 한다.  '변수 == null ?'

freemarker에서는 null check는 ?? 로 이용하면 된다. 


<#if userList??>

<#list userList as id >

    ${id}

</#list>

</#if>



else if 는 항상 붙여 쓴다.!!   #elseif



2. conditional statement(if 문)에서는 '='은 두번 쓰지 않는다. 하나의 = 만을 쓴다. 

<#if category = "home">

<#elseif category = "content">

</#if>




3. map 의 모든 요소 표현

Map<String, String> (O)

Map<String, Object> (X)


<#list hashMap?keys as it>

   ${it} = ${hashMap[it]}

</#list>

        


이런 표현식의 주의점은 map의 value 값이 String, Date, Number 타입이 아닌 타입이 들어왔을 가능성이 높다. 아니면, Object 여도 안된다. 

예를 들어 Map 안에 key가 "key" 인데, value가 Collection type이나 Object type이면 아래와 같은 에러가 발생할 것이다. 


ERROR ~ Template processing error: "Error on line 37, column 29 in searchengine.ftl\nExpecting a string, date or number here, Expression hashMap[it] is instead a freemarker.template.TemplateBooleanModel$2"


자세한 내용은 아래 내용을 참조한다. 



4. List of map 표현

List<Map<String, Object>> userList 



<#if userList??>

<#list userList as user>

    ${user.content}

    ${user.link}

</#list>

</#if>



또는 (역순 출력, 응근히 많이 쓰임)

<#if userList??>

<#list userList?reverse as user>

    ${user.content}

    ${user.link}

</#list>

</#if>


#list 에서 {$user.content}를 사용하고 있지만 if/elseif 문에서는 무장해제를 변수를 시켜야 한다.


// 잘못된 표현

<#if ${user. content} == 'abc'> abc </#if>    


// 좋은 표현

<#if user. content == 'abc'> abc </#if>    



5. List 표현

List<String> userList  

<#if userList??>

<#list userList as activityId >

    ${activityId}

</#list>

</#if>



더 좋은 정보 

http://viralpatel.net/blogs/iterate-hashmap-in-freemarker-ftl/




6. 숫자 관련

high chart 연동하면서 실수한 부분인데..

freemarker는 디폴트로 1000 이상의 숫자는 ,(comma)를 사용한다. 따라서 json의 배열 요소를 나누는 , 와 1,000의 , 가 동시에 사용될 수 있는 단점이 있다.

이를 위해서는 아래와 같이 하면 1,000 대신 1000 이라는 숫자만 출력한다.

${x?c} 


참고로, 아래 내용을 참고한다.







<#assign x = 1000>

${x}                 <#-- 1,000 -->

${x?string}          <#-- 1,000 -->

${x?c}               <#-- 1000 -->

${x?string.computer} <#-- 1000 -->


http://stuartgunter.wordpress.com/2011/09/01/freemarker-default-number-formatting/



[출처] http://knight76.tistory.com/entry/java-listmap%EA%B3%BC-freemark-%EC%97%B0%EB%8F%99

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

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

532

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

,