- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
java freemarker常见语法大全
freemarker常见语法大全
FreeMarker的插值有如下两种类型:1,通用插值${expr};2,数字格式化插值:#{expr}或#{expr;format}
${?if_exists } //用于判断如果存在,就输出这个值
${?default(‘xxx’)}//默认值xxx
${!xxx}//默认值xxx
${book.date?string(yyyy-MM-dd)} //日期格式
${book?string.number} 20 //三种不同的数字格式
${book?string.currency}--#-- $20.00 --
${book?string.percent}—#-- 20% --
#assign foo=ture / //声明变量,插入布尔值进行显示
${foo?string(yes,no)} #-- yes --
大小比较符号使用需要注意:(xml的原因),可以用于比较数字和日期
使用lt、lte、gt和gte来替代、=、和= 也可以使用括号#if (xy)
内置函数: 调用区别于属性的访问,使用?代替.
常见的一些内置函数
对于字符串
html-对字符串进行HTML编码
cap_first-使字符串第一个字母大写
lower_case-将字符串转换成小写
trim-去掉字符串前后的空白字符
示例:${“freeMarker”?cap_first}
对于Sequences(序列)
size-获得序列中元素的数目
对于数字
int-取得数字的整数部分(如-1.9?int的结果是-1)
对于集合,可以使用数组的方式,使用下标索引进行访问
逻辑判断:
if................
#if condition...
#elseif condition2...
#elseif condition3......
#else...
Boolean类型的空值判断
空值判断可以写成#if ?? //注意${}为变量的渲染显示,而为定义等操作符的定义
switch............
#switch value
#case refValue1
...
#break
#case refValue2
...
#break
...
#case refValueN
...
#break
#default
...
/#switch
快速定义int区间的集合
#assign l=0..100/ //注意不需要[]
3:循环读取集合: 注意/的使用
#list student as stu
${stu}br/
/#list
与jstl循环类似,也可以访问循环的状态
item_index:当前变量的索引值
item_has_next:是否存在下一个对象 其中item名称为as后的变量名,如stu
集合长度判断
#if student?size != 0/#if 判断=的时候,注意只要一个=符号,而不是==
宏/模板
初步了解: 使用更像一个闭包closure,可以定义后,在脚本中任意地方引用,并原地起作用
#macro greet
font size=+2Hello Joe!/font
/#macro
使用的方式为:
@greet/@greet //同xml可以简写成@greet/
宏的参数定义,类似js,在宏名后 带参数进行传递定义
#macro greet person color
${person}
/#macro
调用带参数时,注意使用类似XML的属性格式进行传递,不需要关心顺序问题
@greet person=Fred color=black/
参数默认值定义,如果没有,就必须要求传递完整的参数列表
#macro greet person color=black
font size=+2 color=${color}Hello ${person}!/font
/#macro
使用xml的嵌套内容进行传递宏调用,关键标签 #nested
#macro border
table border=4 cellspacing=0 cellpadding=4trtd
#nested
/tr/td/table
/#macro
调用时:
@borderThe bordered text/@border
#nested 标签可以在宏中多次调用,也可以将多个宏组合进行嵌套
for循环的精简版:
#list 1..count as x
/#list
宏的循环变量,配合嵌套标签进行参数传递,
#macro repeat count
#list 1..count as x
#nested x, x/2, x==count //这里的三个参数,将会传递到嵌套内容中
/#list
/#macro
@repeat count=4
文档评论(0)