Interpolation 有两种类型:
Ø 通用Interpolation:${expr}
Ø 数字Interpolation:#{expr}或#{expr; format}
1、通用 Interpolation:
(1) 插入字符串值:直接输出表达式结果
${book.name?if_exists } //用于判断如果存在,就输出这个值
${book.name?default(‘xxx’)} //默认值xxx
${book.name!"xxx"} //默认值xxx
(2) 插入数字值:根据缺省格式(由#setting 指令设置缺省格式)将表达式结果转换成文本输出;
可以使用内建函数 string 格式化单个Interpolation
<#setting number_format="currency"/> <#-- 设置缺省格式。即string.currency -->
<#assign answer=42/>
${answer} $42.00
${answer?string} $42.00 <#-- the same as ${answer} -->
${answer?string.number} 42
${answer?string.currency} $42.00
${answer?string.percent} 4,200%
(3) 插入日期值:根据缺省格式(也是由#setting 指令设置)将表达式结果转换成文本输出;
可以使用内建函数 string 格式化单个Interpolation。
下面是一个使用格式模式的例子:
${lastUpdated?string("yyyy-MM-dd HH:mm:ss zzzz")}
${lastUpdated?string("EEE, MMM d, ''yy")}
${lastUpdated?string("EEEE, MMMM dd, yyyy, hh:mm:ss a '('zzz')'")}
输出的结果类似下面的格式:
2003-04-08 21:24:44 Pacific Daylight Time
Tue, Apr 8, '03
Tuesday, April 08, 2003, 09:24:44 PM (PDT)
(4) 插入布尔值:根据缺省格式(由#setting 指令设置)将表达式结果转换成文本输出;
可以使用内建函数string格式化单个Interpolation,下面是一个例子:
<#assign foo=true/>
${foo?string("yes", "no")}
输出结果是:yes
2、数字 Interpolation
#{expr; format}形式用来格式化数字,format 可以是:
mX:小数部分最小X位
MX:小数部分最大X位