freemarker使用总结

[size=medium]
[b]1.freemarker在使用spring MVC时会出现乱码问题[/b]
这时可以在springmvc-servlet.xml(MVC配置文件)中的
freemarkerConfig那里增加
<property name="freemarkerSettings">
<props>
<prop key="defaultEncoding">UTF-8</prop>
<prop key="number_format">0.######</prop>
</props>
</property>
[b]相应地key="number_format"那行表示对于上万的数字不要加逗号.[/b]
或<#settings number_format="####">

[b]2.String 的有用builtins: [/b]
1).split
<#assign foo = 'foo is foo'>
${foo?split(' ')}
split可有第二个参数来指明分隔符是正则表达式(使用java的正则\\),
${foo?split('\\s+', 'r')}
支持正则表达式的builtin还有replace
<#list foo?split(" ") as x>
${x}
</#list>

[b]3. sequences 的有用builtins:[/b]
1).size 长度
例:
<#if list?size > 0>
....
</#if>
2).first sequences的第一个元素
例:
<#assign addr = list?first>
3).分段列表chunk
<#list itemList?chunk(4) as items>
<ul>
<#list items as item>
<li> .....</li>
</#list>
</ul>
</#list>


[b]4.循环 sequences时, [/b]
var_index 表示当前次序, 可以使用<#break>跳出循环
例:
<#list addrs as ad>
${ad_index + 1}
<#if ad_index == 5>
<#break>
</#if>
</#list>

[b]5.构造数字列表可以使用:[/b]
<#list 1..8 as num>
//1和8是变量有时就有用,列表包括1和8
</#list>

[b]6.freemarker变量值不存在[/b]
null值也表示不存在
1).默认值
${user!"unknow"}
2).测试是否存在变量
<#if user??>
...
</#if>

[b]7.freemarker的表达式 Expressions[/b]
1).字符串也可像sequence一样取某个字符
${str[1]}, 切片${str[3..8]} ${str[4..]}
但是不推荐使用了, 而使用string的builtin substring

2).数学计算 Arithmetical calculations
+,-,* ,/,%

3).比较操作符 Comparison
==(也可以使用=) !=
< <= 和 > >=
实际使用 > &gte; < &lte;

4).逻辑操作符 Logical operations
|| && !


[b]8.freemarker循环map[/b]
freemarker 当前只支持key为string的情况,不支持Integer等.
<#list names?keys as key>
key:${key} ---> ${names[key]}
</#list>

另外如果是HashMap, key是无序的
使用LinkedHashMap, key是有序的.
[/size]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值