注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

拥有自己的梦想,跟随心的召唤

平凡是福

 
 
 

日志

 
 

FreeMarker 模板常用语法收集  

2014-06-11 08:48:06|  分类: Java |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

1)数字默认不加逗号  
* 在模板中直接加.toString()转化数字为字符串,如 ${num.toString()}  
* 使用?c控制,如 ${num?c}
* 在freemarker配置文件freemarker.properties(在class目录下即可)加number_format=# 
* 在模板中直接加<#setting number_format="#">;
* 通过freemarker.template.Configuration的config.setNumberFormat("#")来设定freemarker对数值的格式化;

2)默认值
${name!"XXXX"}、${name!}

3)判断变量是否存在
<#if readonly??>A<#else>B</#if>

4)日期的格式化
${myDate?string("yyyy-MM-dd HH:mm:ss zzzz")} 

5)数字的格式化 
<#assign x=42> 
${x?string.number}   --> 42
${x?string.currency}   --> $42.00
${x?string.percent}   --> 4,200%
${x?string.computer}   --> 42 
可以使用 Java 中数字格式语法写的任意的数字格式: (http://java.sun.com/j2se/1.4/docs/api/java/text/DecimalFormat.html)
<#assign x = 1.234> 
${x?string("0")}    --> 1
${x?string("0.#")}    --> 1.2
${x?string("0.##")}    --> 1.23
${x?string("0.###")}    --> 1.234
${x?string("0.####")}    --> 1.234
${1?string("000.00")}    --> 001.00
${12.1?string("000.00")}    --> 012.10 
${123.456?string("000.00")}    --> 123.46
${1.2?string("0")}    --> 1
${1.8?string("0")}    --> 2
${1.5?string("0")}    --> 2
${2.5?string("0")}    --> 2
${12345?string("0.##E0")}    --> 1.23E4

6)对象的通用处理
以下假设对象名为obj
输出toString()方法:${obj}
调用静态方法:
调用实例方法:
判断对象的类型:is_string、is_number、is_boolean、is_date、is_method、is_transform、is_macro、is_hash、is_hash_ex、is_sequence、is_collection、is_enumerable、is_indexable、is_directive、is_node

7)数组或集合的处理
以下假设数组对象名为seq
元素个数:${seq?size}
指定索引号的值:${seq[0]}
拆分数组:
合并数组:
迭代元素:<#list seq as r>${r_index}.${r}<#if r_has_next>,</#if></#list> (r_index为当前迭代到的元素的索引号,r_has_next用于判断是否还有下个元素可迭代)
退出迭代:<#list seq as x>${x}<#if x = "spring"><#break></#if></#list> 

8)哈希表的处理
创建哈希表:<#assign map = {"key1":"value1", "key2":"value2"}>
键的集合:<#assign keys = map?keys>
值的集合:<#assign keys = map?values>
指定键的值:${map.key1} 或 ${map[key1]}

9)特殊的内置变量
版本号:${.version}
变量的值:${.vars[varName]}
语言:${.lang} 如 zh
区域:${.locale} 如 zh_CN

10) 三目运算
${key ?string('trueValue', 'falseValue')}

参考:
  评论这张
 
阅读(623)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017