WEB开发网
开发学院WEB开发Jsp jsp中freemarker 数字格式化 阅读

jsp中freemarker 数字格式化

 2012-11-30 16:38:04 来源:WEB开发网   
核心提示:用法:假设strnum是一个数字,则可以这样写${strnum?round(floor/ceiling)} 或者${strmun?string("0")}可能用法:可用在一些对数字精确度不高的情况(分页处理时也许有用),jsp中freemarker 数字格式化(2),一些对小数敏感的,还是用 str
用法:假设strnum是一个数字,则可以这样写${strnum?round(floor/ceiling)} 或者${strmun?string("0")}
可能用法:
可用在一些对数字精确度不高的情况(分页处理时也许有用),一些对小数敏感的,还是用 string函数

例如:
${num?string('0.00')}

如果小数点后不足两位,用 0 代替
${num?string('#.##')}

如果小数点后多余两位,就只保留两位,否则输出实际值
输出为:1239765.46
${num?string(',###.00')}
输出为:1,239,765.46

整数部分每三位用 , 分割,并且保证小数点后保留两位,不足用 0 代替
${num?string(',###.##')}
输出为:1,239,765.46

整数部分每三位用 , 分割,并且小数点后多余两位就只保留两位,不足两位就取实际位数,可以不不包含小数点
${num?string('000.00')}
输出为:012.70

整数部分如果不足三位(000),前面用0补齐,否则取实际的整数位

${num?string('###.00')}
等价于
${num?string('#.00')}
输出为:12.70

freemarker数字格式化带来的操作问题

freemarker在解析数据格式的时候,自动默认将数字按3为分割(1,000),这个问题给操作带来一定的额外处理复杂度,解决方法有如下几种:

1、在模板中直接加.toString()转化数字为字符串,如:
${languageList.id.toString()};

2、在freemarker配置文件freemarker.properties加
<#setting number_format="#">或者 <#setting number_format="0">;

3、在模板中直接加<#setting number_format="#">或者<#setting number_format="0">,如:<#if

AdminLanguagePaginationMsg?exists>
<#setting number_format="#">

对于数字的格式化,可采用strng 和number_format 设置
数字格式化的优先级: string优先级最高,配置文件配置的优先级最低,在页面setting的优先级在两者之间。

整数取实际的位数关于string指令的更多用法,可以访问官方文档:http://freemarker.sourceforge.net/docs/ref_builtins_number.html#ref_builtin_string_for_number

上一页  1 2 

Tags:jsp freemarker 数字

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接