<html>
<head>
<title>ftl基本语法使用示例</title>
</head>
<body>
<center>
<h2>1.字符串处理</h2>
<#assignmsg='thisIStheTestoffreemarker&output'>
后台放入字符串:${msg}<br>
html编码:${msg?html}<br>
转第一个字母大写:${msg?cap_first}<br>
<#--转第一个字母小写:${msg?lower_first}<br>-->
字符串大写:${msg?upper_case}<br>
字符串小写:${msg?lower_case}<br>
去左右空格:${msg?trim}<br>
空值判断:${msg?if_exists}<br>
默认值abc:${msg?default('abc')}<br>
输出纯文本:${r"c:/ad/dfa"}<br>
插入boolean值false:<#assignfoo=false/>${foo?string('true','false')}<br>
取下标为2的字符:${msg[2]}<br>
取字串1-7:${msg[1..7]}<br>
字符串拼接:
<#assignab="abc">
${"hello"+ab}/${"hello${ab}"}
<br>
<hr>
<h2>2.数字处理</h2>
赋值assignx=3.1415926<br>
<#assignx=3.1415926/>
x:m3小数部分最小3位#{x;m3}<br>
x:M5小数部分最大5位#{x;M5}<br>
x:m1M5#{x;m1M5}<br>
运算结果:3*5=${3*5}<br>
内建int1.1?int=:${1.1?int}<br>
<br>
赋值assigny=20<br>
<#assigny=20>
输出数字原:${y?string.number}<br>
输出货币数字:${y?string.currency}<br>
输出百分比:${y?string.percent}<br>
比较大小21(使用括号):y>21=
<#if(y>21)>
false
<#else>
true
</#if>
<br>
比较大小21(使用字串):y>21=
<#ifygt21>
false
<#else>
true
</#if>
<br>
转义字符:${r"<lt<=lte>gt>=gte"}
<br>
<hr>
<h2>3.其他处理</h2>
日期:<br>
格式化输出:${date?string('yyyy-MM-dd')}<br>
格式输出yyyy-MM-ddHH:mm:sszzzz:${date?string("yyyy-MM-ddHH:mm:sszzzz")}<br>
<hr>
<h2>4.流程控制</h2>
赋值:assigna='1'<br>
A.if-else逻辑判断<br>
<#assigna='1'>
<#ifa='0'>
0
<#elseifa='1'>
1
<#else>
2
</#if>
<br>
B.Switch<br>
<#switcha>
<#case'0'>
0
<#break>
<#case'1'>
1
<#break>
<#default>
2
</#switch>
<br>
C.遍历list<br>
后台传递list:stuList<br>
判断是否为空:
<#ifstuList?size=0>
空的
<#else>
非空
</#if>
<br>
下标:
<#liststuListasstu>
${stu_index}
</#list><br>
内容:
<#liststuListasstu>
${stu.name}
</#list><br>
<hr>
<h2>5.集合</h2>
定义list["winter","spring","summer","autumn"]<br>
输出:<#list["winter","spring","summer","autumn"]asx>
${x}
</#list>
<br>
list[1..5]
<#list1..5aslist>
${list}
</#list>
<br>
定义Map{"abc":23,"efg":35}<br>
<#assignages={"abc":23,"efg":35}>
输出abc的年龄:${ages.abc}<br>
输出efg的年龄:${ages.efg}<br>
定义map,分别输出K-V
<#assignselectelement={"1":"选择A","2":"选择B","3":"选择C","4":"选择D"}>
<#assignskeys=selectelement?keys>
<#listskeysaskey>
<#assignvar0="${selectelement[key]}">
${key}-${selectelement[key]}
----
${var0}
</#list><br>
序列连接["a","b"]+["e","f"]:
<#assignliab=["a","b"]+["e","f"]>
<#listliabasl>
${l}
</#list><br>
散列连接{"1":"a","2":"b"}+{"2":"c","3":"d"}【散列右值覆盖左值】:
<#assignma={"1":"a","2":"b"}+{"2":"c","3":"d"}>
<#assignkeys=ma?keys>
<#listkeysask>
${ma[k]}
</#list><br>
双重list循环<br>
<#listnumaslist>
<#listlistastemp>
${temp}
</#list>
<br>
</#list>
<br>
<hr>
<h2>6.宏的使用</h2>
A.使用宏
<#macrogreetpersoncolor>
<fontsize="+2"color="${color}">Hello${person}!</font>
</#macro>
<@greetperson="ken"color="blue"/>
<br>
B.宏调用和嵌套nested:<br>
<#macrobordermsg>
${msg}<br>
<#nested><br>
repart:<br>
<#nested><br>
</#macro>
<@bordermsg="TheOUTMSG:">
MacroTest!
</@border>
<br>
C.宏与宏之间的嵌套:<br>
<#macropersonname>
Hello!${name}<br>
</#macro>
<@bordermsg="TheOUTMSG:">
<@personname="Ken"/>
</@border><br>
D.宏变量中使用循环变量<br>
<#macrorepeatcount>
<#list1..countasx>
<#nestedx,x/2,x==count/>
</#list>
</#macro>
<@repeatcount=4;c,halfc,last>
${c}.${halfc}<br>
<#iflast>
last!
</#if>
</@repeat>
</center>
</body>
</html>
可以在一个ftl中专门定义宏文件
<#macropagetitle>
</#macro>
然后在另一个文件中使用import调用
<#import"/page/ftl/macro/common.ftl"ascom>
使用
<@com.pagetitle="">
</@com.page>
freemarker基本语法
最新推荐文章于 2024-03-29 05:51:06 发布