<
#
>
中存放所有freemaker的内容,之外的内容全部原样输出。
<
@
/>
是函数调用
两个定界符内的内容中,第一个符号表示指令或者函数名,其后的跟随参数。freemaker提供的控制包括如下:
<
#
if
condition
>
< #elseif condition >
< # else >
</ # if >
< #elseif condition >
< # else >
</ # if >
条件判断
<
#list hash_or_seq as var
>
</ #list >
</ #list >
遍历hash表或者collection(freemaker称作sequence)的成员
<
#macro name param1 param2
>
< #nested param >
</ #macro >
< #nested param >
</ #macro >
宏,无返回参数
<
#function name param1 param2
>
< # return val >
</ #function >
< # return val >
</ #function >
函数,有返回参数
var
?
member_function()
用函数对var进行转换,freemaker称为build-ins。实际内部实现类似member_function(var, ...)
stringA[M .. N]
取子字符串,类似substring(stringA, M, N)
{key:value, key2:value2 }
直接定义一个hash表
[item0, item1, item2 ]
直接定义一个序列
hash0[key0]
存取hash表中key对应的元素
seq0[
5
]
存取序列指定下标的元素
<
@function1 param0 param1
/>
调用函数function1
<
@macro0 param0 param1 ; nest_param0 nest_param1
>
nest_body
< / @macro >
nest_body
< / @macro >
调用宏,并处理宏的嵌套
<
#assign var
=
value
>
定义变量并初始化
<
#local var
=
value
>
在 macro 或者 function 中定义局部变量并初始化
<
#global var
=
value
>
定义全局变量并初始化
$
{var}
输出并替换为表达式的值
<
#visit xmlnode
>
调用macro匹配xmlnode本身及其子节点
<
#recurse xmlnode
>
调用macro匹配xmlnode的子节点