freemarker笔记

${.....}===>${xxxx},${xxx.xxx.xxx}

if指令===><#ifuser=="bin">html</#if>或<#ifuser="bin">html<#else>html</#if>

<#ifprice==0>html</#if>或<#ifprice==0>html<#else>html</#if>

<#ifanimals.python.price>animals.elephont.price>html</#if>或<#ifanimals.python.price>animals.elephont.price>html<#else>html</#if>

list指令===><#listusersasuser>html</#list>或<#listusersasuser><#ifuser.name="bin">html</#if></#list>

include指令===><#include"xxx/xxx.html">

处理不存在的变量:<h1>Welcome${user!"Anonymous"}!</h1>或<#ifuser??><h1>Welcome${user}!</h1></#if>或<#if(animals.python.price)!0><h1>Welcome${user}!</h1></#if>

标量:字符串,数字,布尔值,日期

容器:哈希表(user.name,user.age),序列(number[1],number[2]),集

字符串操作:str="abcdefg";===>"Hello${user.name}""Hello"+"bin";str[0]等于a

序列操作:users=["bin","job","co","jame"]===>users+["haha"],users[1..3],users[3..]

哈希表操作:user={"age":20,"name":"bin"}===>user+{"addr":"address"}拼接过程中,key一样的覆盖,其它追加;取值法:book.author.name,book["author"].name,book.author.["name"],book["author"]["name"]

处理不存在的值:默认值:name!"unknown"或者(user.name)!"unknown"或者name!或者(user.name)!<#ifmouse??>使用内建函数处理不存在的值:default,exists和if_exists

***注意点:${3*"5"}不执行,${3+"5"}可执行,值为“35”

比较运算:=,!=,<=;逻辑运算:||,&&,!

****注意点:字符串中有特殊的html字符都需要实体引用代替,<代替&lt;

内建函数:cap_first:字符串的第一个字母变为大写形式lower_case:字符串的小写形式upper_case:字符串的大写形式trim:去掉字符串首尾的空格size:序列中元素的个数int:数字的整数部分

函数调用:${test?upper_case?html}test字符串,调用upper_case转成大写字母,之后再调用html将test中属于html的特殊字符转成实体引用

方法的调用:${repeat("What",3)}将“What”字符串拷贝三次

实例:

${mouse!"Nomouse."}===>变量不存在,显示Nomouse

<#assignmouse="Jerry">===>为变量赋值

${mouse!"Nomouse."}===>变量存在,显示变量值Jerry

插值:${x+100}${name}!<#include"xxxx/${url}.html">

日期转成字符串:time_format,date_format和datetime_format

自定义指令:

宏指令定义1:

<#macrogreet>

<fontsize="+2">HelloJoe!</font>

</#macro>

调用:<@greet></@greet>或<@greet/>

定义2:

<#macrogreetpersoncolor...>

<fontsize="+2">HelloJoe!</font>

</#macro>

调用:<@greetperson="Fred"color="black".../>

实例

<#macrorepeatcount>===>定义一个宏

<#list1..countasx>===>遍历一个1..count1到count的序列

<#nestedx,x/2,x==count>===>将x=1,x=2,x=3...依次传到返回值里

</#list>

</#macro>

<@repeatcount=4;c,halfc,last>

${c}.${halfc}<#iflast>Last!</#if>===>输出值

</@repeat>

创建变量:<#assignx=1>;变量范围:内部变量隐藏外部变量,获取全局变量:${.globals.user}

引入外部模板(import指令):<#import"/lib/my_test.ftl"asmy>===>调用:<@my.copyrightdate="1999-2002"/>${my.mail}

相关推荐