- <html>
- <head>
- <title>ftl基本语法使用示例</title>
- </head>
- <body>
- <center>
- <h2>1.字符串处理</h2>
- <#assign msg=' this IS the Test of freemarker & 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:<#assign foo=false/>${foo?string('true','false')}<br>
- 取下标为2的字符:${msg[2]}<br>
- 取字串1-7:${msg[1..7]}<br>
- 字符串拼接:
- <#assign ab="abc">
- ${"hello "+ab}/${"hello${ab}"}
- <br>
- <hr>
- <h2>2.数字处理</h2>
- 赋值 assign x=3.1415926<br>
- <#assign x=3.1415926 />
- x:m3小数部分最小3位 #{x;m3}<br>
- x:M5小数部分最大5位 #{x;M5}<br>
- x:m1M5 #{x;m1M5}<br>
- 运算结果:3*5=${3*5}<br>
- 内建int 1.1?int=:${1.1?int}<br>
- <br>
- 赋值assign y=20<br>
- <#assign y=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=
- <#if y gt 21>
- false
- <#else>
- true
- </#if>
- <br>
- 转义字符:${r"< lt <= lte > gt >= gte"}
- <br>
- <hr>
- <h2>3.其他处理</h2>
- 日期: <br>
- 格式化输出:${date?string('yyyy-MM-dd')}<br>
- 格式输出yyyy-MM-dd HH:mm:ss zzzz:${date?string("yyyy-MM-dd HH:mm:ss zzzz")}<br>
- <hr>
- <h2>4.流程控制</h2>
- 赋值:assign a = '1'<br>
- A.if - else逻辑判断<br>
- <#assign a = '1'>
- <#if a='0'>
- 0
- <#elseif a='1'>
- 1
- <#else>
- 2
- </#if>
- <br>
- B.Switch<br>
- <#switch a>
- <#case '0'>
- 0
- <#break>
- <#case '1'>
- 1
- <#break>
- <#default>
- 2
- </#switch>
- <br>
- C.遍历list<br>
- 后台传递list:stuList<br>
- 判断是否为空:
- <#if stuList?size=0>
- 空的
- <#else>
- 非空
- </#if>
- <br>
- 下标:
- <#list stuList as stu>
- ${stu_index}
- </#list><br>
- 内容:
- <#list stuList as stu>
- ${stu.name}
- </#list><br>
- <hr>
- <h2>5.集合</h2>
- 定义list["winter","spring","summer","autumn"]<br>
- 输出:<#list ["winter","spring","summer","autumn"] as x>
- ${x}
- </#list>
- <br>
- list[1..5]
- <#list 1..5 as list>
- ${list}
- </#list>
- <br>
- 定义Map{"abc":23,"efg":35}<br>
- <#assign ages={"abc":23,"efg":35}>
- 输出abc的年龄:${ages.abc}<br>
- 输出efg的年龄:${ages.efg}<br>
- 定义map,分别输出K-V
- <#assign selectelement = {"1":"选择A","2":"选择B","3":"选择C", "4":"选择D"}>
- <#assign skeys=selectelement?keys>
- <#list skeys as key>
- <#assign var0="${selectelement[key]}">
- ${key}-${selectelement[key]}
- ----
- ${var0}
- </#list><br>
- 序列连接["a","b"]+["e","f"]:
- <#assign liab=["a","b"]+["e","f"]>
- <#list liab as l >
- ${l}
- </#list><br>
- 散列连接{"1":"a","2":"b"}+{"2":"c","3":"d"}【散列右值覆盖左值】:
- <#assign ma={"1":"a","2":"b"}+{"2":"c","3":"d"} >
- <#assign keys=ma?keys >
- <#list keys as k>
- ${ma[k]}
- </#list><br>
- 双重list循环<br>
- <#list num as list>
- <#list list as temp>
- ${temp}
- </#list>
- <br>
- </#list>
- <br>
- <hr>
- <h2>6.宏的使用</h2>
- A.使用宏
- <#macro greet person color>
- <font size="+2" color="${color}">Hello ${person}!</font>
- </#macro>
- <@greet person="ken" color="blue"/>
- <br>
- B.宏调用和嵌套nested:<br>
- <#macro border msg>
- ${msg}<br>
- <#nested><br>
- repart:<br>
- <#nested><br>
- </#macro>
- <@border msg="The OUT MSG:">
- Macro Test!
- </@border>
- <br>
- C.宏与宏之间的嵌套:<br>
- <#macro person name>
- Hello! ${name}<br>
- </#macro>
- <@border msg="The OUT MSG:">
- <@person name="Ken"/>
- </@border><br>
- D.宏变量中使用循环变量<br>
- <#macro repeat count>
- <#list 1..count as x>
- <#nested x,x/2,x==count />
- </#list>
- </#macro>
- <@repeat count=4;c,halfc,last>
- ${c}. ${halfc}<br>
- <#if last>
- last!
- </#if>
- </@repeat>
- </center>
- </body>
- </html>
- 可以在一个ftl中专门定义宏文件
- <#macro page title>
- </#macro>
- 然后在另一个文件中使用import调用
- <#import "/page/ftl/macro/common.ftl" as com>
- 使用
- <@com.page title="">
- </@com.page>
freemarker基本语法
最新推荐文章于 2024-04-11 20:18:16 发布