当前项目前端是用freemarker,是第一次使用这种页面,一般语法不介绍,这里只是记录工作中遇到的问题
---------2016.6.25--------------
1.关于ftl字符串的问题
我在后台取值进行百分比计算的时候${option.num * 100 / vote.voteCount}%,得到的值不见得都是整数,也有无限循环的小数,
那么就需要进行字符串截取,${(option.num * 100 / vote.voteCount)?substring(0,5)}%,使用?substring(startIndex,endIndex)
方法可以截取字符串,但是问题在于也不见得每个都是小数,这个时候就会出现下标越界的问题,那么我们需要进行判断,我在网上找的方法是
(option.num * 100 / vote.voteCount)?length gt 5,但是我自作聪明改成了ge想要实现大于等于,结果又不行了,改回来了之后就可以完成
判断了,不大于5位的不截取,大于5位的截取5位
最后总结一下:1.大于 gt2.小于 lt3.大于等于 gte 4.小于等于 lte
ftl关于字符串文档地址:http://freemarker.org/docs/ref_builtins_string.html
---------2016.7.8---------------
2.还是上次数字截取的问题
这次听公司前辈说原来上次的截取方法很笨,freemarker自带了数字取整的函数,这里介绍一下
(1)round:四舍五入
(2)floor:向下取整
(3)ceiling:向上取整
其实用法也很简单,网上大多一样且说明一般,只需要${num?ceiling}就行,但是我在取值的时候使用了各种计算,必须把计算的包裹在一起,放在
"?"前,不然只会去找最后一个进行取整,${(option.num/vote.voteCount*100)?ceiling},如果不加括号那么ceiling只针对100,那么就不起作用了
待续。。