Freemarker数字问题
Interpolation
有两种类型:
1.
通用
Interpolation
:
${expr}
2.
数字
Interpolation
:
#{expr}
或
#{expr; format}
注意:
Interpolation
只能用于文本部分
n
通用
Interpolation
插入字符串值:直接输出表达式结果
插入数字值:根据缺省格式(由
#setting
指令设置)将表达式结果转换成文本输出;可以使用内建函数
string
格式化单个
Interpolation
,下面是一个例子:
<#setting number_format="currency"/><#assign answer=42/>${answer}${answer?string} <#-- the same as ${answer} -->${answer?string.number}${answer?string.currency}${answer?string.percent}
输出结果是:
$42.00$42.0042$42.004,200%
插入日期值:根据缺省格式(由
#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 TimeTue, Apr 8, '03Tuesday, April 08, 2003, 09:24:44 PM (PDT)
插入布尔值:根据缺省格式(由
#setting
指令设置)将表达式结果转换成文本输出;可以使用内建函数
string
格式化单个
Interpolation
,下面是一个例子:
<#assign foo=true/>${foo?string("yes", "no")}
输出结果是:
yes
·
数字
Interpolation
的
#{expr; format}
形式可以用来格式化数字,
format
可以是:
mX
:小数部分最小
X
位
MX
:小数部分最大
X
位
例子:
<#-- If the language is US English the output is: --><#assign x=2.582/><#assign y=4/>#{x; M2} <#-- 2.58 -->#{y; M2} <#-- 4 -->#{x; m1} <#-- 2.6 -->#{y; m1} <#-- 4.0 -->#{x; m1M2} <#-- 2.58 -->#{y; m1M2} <#-- 4.0 -->