freemarker基本语法

  • <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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值