freemarker 使用总结

探讨Freemarker默认将数字格式化为千分位显示的问题,并提供多种解决方法,包括在模板中直接转换为字符串及调整配置文件等。
1.

freemarker在解析数据格式的时候,默认将数字按3位来分割,例如1000被格式化为1,000,这样做看似美观,但在实际操作时候会带来问题。例如我一个页面有一个元素,该元素的值由后台绑定且超过1000,那么当我要使用这个元素的值的时候,便会出现问题。
例如,我在ftl文件中这样写:

<input type="hidden" id="testElement" name="testElement" value="${size}" />
假设后台绑定的size为1000。

然后我在js里使用这个testElement元素的值。
var t = $("#testElement");
alert(t);
alert(parseInt(t));
alert(Number(t));


得到的值是:
1,000
1
NaN

解决问题
* 在模板中直接加.toString()转化数字为字符串,如:${size.toString()};
* 在freemarker配置文件freemarker.properties(在类路径下即可)加<#setting number_format="#">;
* 在模板中直接加<#setting number_format="#">;
* 通过freemarker.template.Configuration的config.setNumberFormat("#")来设定freemarker对数值的格式化;

其实后三种方法的思路是一致的,只是实现方法不同而已。如果应用中已经存在了 freemarker.properties 并配置了其他的属性,可以在这里配置,否则推荐使用最后一种方法。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值