freemarker ftl文件简单语法整理
应项目组要求修改PDF功能为word,这是使用freemarker,故将一些常用的语法整理进来
本文转载至
链接: freemarker 常见语法整理.
我的freemarker 整理使用教程及源码
链接: 使用freemarker转word简单教程.
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% -->
<#assign foo=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................
<#if condition>...
<#elseif condition2>...
<#elseif condition3>......
<#else>...
Boolean类型的空值判断
空值判断可以写成<#if book.name?? >
//注意${
}为变量的渲染显示,而<>为定义等操作符的定