20141005 add:
20140529 add:
<#if pc.pageInfo?exists>
</#if>
上述这段代码,是用来判断pageInfo这个对象是否存在,如果pc不存在,则会报错。
<#if (pc.pageInfo)??>
</#if>
这样,即使pc不存在,判断式也不会报错了。
ftl中类似这种
${fans.fansUser.user.uid}
可以加上null处理
${(fans.fansUser.user.uid)!}
FreeMarker List使用
转载自:http://blog.csdn.net/nairuohe/article/details/6292190
在模版页里用list展示列表内容,非常方便。全部用例子来说吧。
最常用的用法 :
<#list users as user>
<span>${user.name}</span>
<span>${user.age}</span></br>
</#list>
这里,是假设java类里有一个users的数组,或者Map,或者List等等,它的里面放的是user类,每个user有自己name,age属性。
最后显示的结果就是users里面所有user的姓名和年龄。
上例中的users处也可以是用现场定义的,如
<#list [1,2,3,4] as index>
<span>${index}</span>
</#list>
结果显示是:1234
如果只是想要计数,也可以这样写
<#list 1..4 as index>
<span>${index}</span>
</#list>
结果和上面是一样的,也是1234
如果需要显示当前循环到第几项,可以这样写
<#list ["hello","welcome","hi"] as word>
<span>${word_index+1},${word}</span></br>
</#list>
as 后面的那个变量,加上_index,就可以表示当前循环到第几项
结果是:
1,hello
2,welcome
3,hi
有时候,最后一项在显示的时候可能要做特殊处理,怎么判断最后一项?
<#list ["hello","welcome","hi"] as word>
<span>${word}</span><#if word_has_next>,</#if></#list>
as 后面的那个变量,加上_has_next,就可以判断是否最后一项
结果是:
hello,welcome,hi
如果想在循环中判断到某一项时退出,可以这样做
<#list users as user>
<span>${user.name}</span>
<#if user.name == "pxx"><#break></#break>
</#list>
2、if 和else:相当于jstl的if或者choose
<#list imageList as image>
<#if image.id == 0>
<li> 啊啊啊啊啊 </li>
<#else>
<li> 啊啊啊啊啊 </li>
</#if>
</#list>
3、字符串截取相关
<#if news.title?length lt 13 > //判断要截取字符长度‘lt’小于
{news.title}
<#else>
${news.title[0..12]}...
</#if>
4、时间格式化相关
${book.date?string('yyyy-MM-dd HH:mm:ss')} 或者${book.date?string('yyyy-MM-dd')}
5、金钱相关的和数字四舍五入
${1?string("000.00")} 001.00
${12.1?string("000.00")} 12.10
${123.456?string("000.00")} 123.46
6、数字相关
${num?string('0.00')}
如果小数点后不足两位,用 0 代替
${num?string('#.##')}
如果小数点后多余两位,就只保留两位,否则输出实际值
输出为:1239765.46
${num?string(',###.00')}
输出为:1,239,765.46
整数部分每三位用 , 分割,并且保证小数点后保留两位,不足用 0 代替
${num?string(',###.##')}
输出为:1,239,765.46
整数部分每三位用 , 分割,并且小数点后多余两位就只保留两位,不足两位就取实际位数,可以不不包含小数点
${num?string('000.00')}
输出为:012.70
整数部分如果不足三位(000),前面用0补齐,否则取实际的整数位
${num?string('###.00')}
等价于
${num?string('#.00')}
输出为:12.70
7、页面如果获取的实体ID为8位的,要进行格式化
例子:<li class="item"><a href="/product/category-${product.firstLevelId?c}-${product.secondLevelId?c}-${pctlist.id?c}</li>
如果id为100000的,如果不架上"?c",就会变成格式化的“100,000”