freemaker 학습 노트--지령 참고

6199 단어
freemaker 학습 노트--지령 참고
1:if 명령어:
<#if
condition >
 
...
<#elseif
condition2 >
 
...
<#elseif
condition3 >
 
...
...
<#else>
 
...

switch
<#switch
value >
  <#case
refValue1 >
   
...
    <#break>
  <#case
refValue2 >
   
...
    <#break>
 
...
  <#case
refValueN >
   
...
    <#break>
  <#default>
   
...

3:list,break
<#list
sequence as
item>
   
...

두 개의 특수한 순환 변수:
item_index: 현재 변수의 인덱스 값입니다.
item_has_next: 다음 대상이 존재하는지 여부입니다.
<#break/> 명령을 사용하여loop 순환을 떠날 수 있습니다.
4:include 명령
<#include
filename>
혹은
<#include
filename
options>
filename: 표현식을 문자열로 변환
options: encoding=
encoding, parse=
parse
   
encoding: 표현식을 문자열로 변환
   
parse: 표현식이 논리 값으로 변환되며 ftl 파일로 해석될지 여부입니다.
<#include "/common/navbar.html"parse=false encoding="Shift_JIS">
<#include "*/footer.ftl"은 현재 디렉토리와 모든 부모 디렉토리의 파일을 나타냅니다.
현재 모델이/foo/bar/template에 있다면.ftl, 그럼 footer를 찾으세요.ftl 순서는 다음과 같습니다.
/foo/bar/footer.ftl
/foo/footer.ftl
/footer.ftl
이런 방식은 디자이너가 일반적인 모형을 부모 폴더에 넣는 것을 허용한다.
일부 경로만 지정할 수도 있습니다. <#include "*/commons/footer.ftl">
5:import 명령
<#import
path as
hash>
6:noparse
<#noparse>
 
...

7:compress
<#compress>
 
...

8:escape,noescape
<#escape
identifier as
expression>
 
...
  <#noescape>...
 
...

escape 명령어 바디 구역의 ftl의interpolations는 자동으로 escape 표현식을 추가합니다.그러나 문자열 내의interpolations에는 영향을 주지 않습니다.그리고 바디에 나타나는 인터폴레이션에만 영향을 미친다. 예를 들어include의 ftl에 영향을 주지 않는 인터폴레이션.
<#escape x as x?html> First name: ${firstName}Last name: ${lastName}Maiden name: ${maidenName}은 다음과 같습니다.
First name: ${firstName
?html}
  Last name: ${lastName
?html}
  Maiden name: ${maidenName
?html}
escape 명령은 실행할 때가 아니라 템플릿을 해석할 때 작동합니다.
escape 명령은 부모의 escape 규칙을 계승하는 데 끼워 넣을 수 있습니다.
<#escape x as x?html>
  Customer Name: ${customerName}
  Items to ship:
 
<#escape x as itemCodeToNameMap[x]>
    ${itemCode1}
    ${itemCode2}
    ${itemCode3}
    ${itemCode4}
 

은: Customer Name: ${customerName? html}와 같습니다.
  Items to ship:
    ${itemCodeToNameMap[itemCode1]?html}
    ${itemCodeToNameMap[itemCode2]?html}
    ${itemCodeToNameMap[itemCode3]?html}
    ${itemCodeToNameMap[itemCode4]?html}
9:assign 명령
4
<#assign name=value>
or
<#assign name1=value1name2=value2... nameN=valueN>
or
<#assign same as above... in namespacehash>
or
<#assign name>
  capture this
</#assign>
or
<#assign name in namespacehash>
  capture this
</#assign>

, 。 :<#assign x>Hello ${user}!</#assign>
:<#assign x="Hello ${user}!">




10: 글로벌 명령
<#global
name=
value>
or
<#global
name1=
value1
name2=
value2
... nameN=
valueN>
or
<#global
name>
 
capture this

11:local 명령
<#local
name=
value>
or
<#local
name1=
value1
name2=
value2
... nameN=
valueN>
or
<#local
name>
 
capture this

맥로의 정의 바디에만 사용할 수 있습니다.
12:setting 명령:
<#setting
name=
value>
name의 범위:
local:
number_format:
boolean_format: 기본값은 "true,false"
date_format, time_format, datetime_format
time_zone:
url_escaping_charset
classic_compatible
13: 사용자 정의 명령
4
<@macro_or_transfparam1=val1param2=val2...paramN=valN/><@macro_or_transfparam1=val1param2=val2...paramN=valN ; lv1, lv2, ..., lvN/><@macro_or_transf...>
  ...
</@macro_or_transf>


<@macro_or_transf...> ... </@><@macro_or_transfval1, val2, ..., valN/>

14:macro,nested,return
<#macro
name
param1
param2
... paramN>
 
...
  <#nested
loopvar1,
loopvar2,
...,
loopvarN>
 
...
  <#return>
 
...

15:function,return
<#function
name
param1
param2
... paramN>
 
... <#return
returnValue>
 
...

<#function avg x y>
  <#return (x + y)/2>

${avg(10, 20)} 
16:flush
<#flush>
17:stop
<#stop>
or
<#stop
reason>
템플릿 처리를 취소합니다.
18:ftl 명령
<#ftl
param1=
value1
param2=
value2
...
paramN=
valueN>
ftl 명령은 ftl 파일의 맨 위에 놓아야 합니다.
매개변수 범위:
encoding:
strip_whitespace
strip_text
strict_syntax
19:t,lt,rt
20:attempt,recover
<#attempt>
 
attempt block<#recover>  
recover block

<#attempt>
  Optional content: ${thisMayFails}
<#recover>
  Ops! The optional content is not available.

좋은 웹페이지 즐겨찾기