freemarker常见语法大全.docx
上传人:qw****27 上传时间:2024-09-11 格式:DOCX 页数:7 大小:20KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

freemarker常见语法大全.docx

freemarker常见语法大全.docx

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

freemarker常见语法大全格式比较乱一些,适合ctrl+f搜索关键字FreeMarker的插值有如下两种类型:1,通用插值${expr};2,数字格式化插值:#{expr}或#{expr;format}${book.name?if_exists}//用于判断如果存在,就输出这个值${book.name?default(‘xxx’)}//默认值xxx${book.name!"xxx"}//默认值xxx${book.date?string('yyyy-MM-dd')}//日期格式${book?string.number}20//三种不同的数字格式${book?string.currency}--<#--$20.00-->${book?string.percent}—<#--20%--><#assignfoo=ture/>//声明变量,插入布尔值进行显示${foo?string("yes","no")}<#--yes--><等大小比较符号使用需要注意:(xml的原因),可以用于比较数字和日期使用lt、lte、gt和gte来替代<、<=、>和>=也可以使用括号<#if(x>y)>内置函数:调用区别于属性的访问,使用?代替.常见的一些内置函数对于字符串html-对字符串进行HTML编码cap_first-使字符串第一个字母大写lower_case-将字符串转换成小写trim-去掉字符串前后的空白字符对于Sequences(序列)size-获得序列中元素的数目对于数字int-取得数字的整数部分(如-1.9?int的结果是-1)对于集合,可以使用数组的方式,使用下标索引进行访问逻辑判断:if................<#ifcondition>...<#elseifcondition2>...<#elseifcondition3>......<#else>...Boolean类型的空值判断空值判断可以写成<#ifbook.name??>//注意${}为变量的渲染显示,而<>为定义等操作符的定义switch............<#switchvalue><#caserefValue1>...<#break><#caserefValue2>...<#break>...<#caserefValueN>...<#break><#default>...</#switch>快速定义int区间的集合<#assignl=0..100/>//注意不需要[]3:循环读取集合:注意/的使用<#liststudentasstu>${stu}<br/></#list>与jstl循环类似,也可以访问循环的状态item_index:当前变量的索引值item_has_next:是否存在下一个对象其中item名称为as后的变量名,如stu集合长度判断<#ifstudent?size!=0></#if>判断=的时候,注意只要一个=符号,而不是==宏/模板初步了解:使用更像一个闭包closure,可以定义后,在脚本中任意地方引用,并原地起作用<#macrogreet><fontsize="+2">HelloJoe!</font></#macro>使用的方式为:<@greet></@greet>//同xml可以简写成<@greet/>宏的参数定义,类似js,在宏名后带参数进行传递定义<#macrogreetpersoncolor>${person}</#macro>调用带参数时,注意使用类似XML的属性格式进行传递,不需要关心顺序问题<@greetperson="Fred"color="black"/>参数默认值定义,如果没有,就必须要求传递完整的参数列表<#macrogreetpersoncolor="black"><fontsize="+2"color="${color}">Hello${person}!</font></#macro>使用xml的嵌套内容进行传递宏调用,关键标签<#nested><#macroborder><tableborder=4cellspacing=0cellpadding=4><tr><td><#nested></tr></td></table></#macro>调用时:<@border>Theborderedtext</@border><#nested>标签可以在宏中多次调用,也可以将多个宏组合进行嵌套for循环的精简版:<#list1..countasx></#list>宏的循环变量,配合嵌套标签进行参数传递,<#macrorepeatcount><#list1..countasx><#nestedx,x/2,x==count>//这里的三个参数,将会传递到嵌套内容中</#list></#macro><@repeatcount