Freemarker数值问题
Posted vlsion
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Freemarker数值问题相关的知识,希望对你有一定的参考价值。
转 http://blog.sina.com.cn/s/blog_3e3779c10100emst.html
当数据超过3位的时候,freemarker会自动用逗号截取 格式如:2,008
如何解决呢?
1> 加.toString(),如:${(userId).toString()}
2> 加?c,如:${(userId)?c}
3> freemarker配置文件freemarker.properties加上number_format=#
判断是否为空:
1.<#if xx?exists>
2.<#if xx??>
3.<#if xx?default("xxx")>
不然当xxList没有数据的时候 ,很大很大一个黄页就等着你了
数据类型转换:
${xx?string} //字符串
${xx?number}//整数
${xx?currency}//小数
${xx?percent} //百分比
截取字符串长度:
有的时候我们在页面中不需要显示那么长的字符串,比如新闻标题,这样用下面的列子就可以自定义显示的长度
< lt. <= lte. > gt. >= gte
<#if jstbqkVO.gzdd?length lt 8>
<a href>${jstbqkVO.gzdd?default("")}</a>
<#else>
<a href title="${jstbqkVO.gzdd}">${jstbqkVO.gzdd[0..3]?default("")}...</a>
</#if>
意思就是如果这个字符串的长度小于8,那么就正常显示,反之则取4位
嵌套list:
很多时候,数据库里存储的都是编号,而页面上需要显示的汉字,而且不在一张表里,看列子
<#list jsskList as jsskVO>
<#list kcList as kcVO>
<#if kcVO.kch=jsskVO.kch> (kcVO里有编号和名称,而jsskVO里只有编号)
${kcVO.kcm}
</#if>
</#list>
</#list>
排序:
1.升序.sort_by()
<#list list?sort_by("字段") as x>
</#list>
2.降序.sort_by()?reverse
<#list list?sort_by("字段")?reverse as x>
</#list>
去空格:
${xx?trim}
格式化日期:
${date?string("yyyy-MM-dd HH:mm:ss ")}
${date?string("yyyyMMdd ")}
以上是关于Freemarker数值问题的主要内容,如果未能解决你的问题,请参考以下文章