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.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.