1、freemarker 里 ?? 和 ?
??是判断对象是否为空,例如:<#if object??>object对象不为空(即object存在)</#if>
?后面要加关键字,例如:<#if object?exists>object对象不为空</#if>
<#if str??>${str?string}</#if><#--将str以字符串形式显示-->
${nowDate?time}<#--将现有时间以时间的格式显示,显示结果如:15:13:05-->
${nowDate?date}<#--以日期格式显示,如:2011-4-28-->(date的格式可以在freemarker.properties文件中配置)
2、assign用法
<
#assign types={"FIX":"固定密码","CERT":"数字认证","TOK":"动态口令","SOFTORHARDTOKEN":"硬令牌和软令牌","PHONETOKEN":"手机令牌"}
3.输出
输出:${book.name}
空值判断:${book.name?if_exists },
${book.name?default(‘xxx’)}//默认值xxx
${ book.name!"xxx"}//默认值xxx
日期格式:${book.date?string('yyyy-MM-dd')}
数字格式:${book?string.number}--20
${book?string.currency}--<#-- $20.00 -->
${book?string.percent}—<#-- 20% -->
插入布尔值:
<#assign foo=ture />
${foo?string("yes","no")} <#-- yes -->
空值判断:${book.name?if_exists },
${book.name?default(‘xxx’)}//默认值xxx
${ book.name!"xxx"}//默认值xxx
日期格式:${book.date?string('yyyy-MM-dd')}
数字格式:${book?string.number}--20
${book?string.currency}--<#-- $20.00 -->
${book?string.percent}—<#-- 20% -->
插入布尔值:
<#assign foo=ture />
${foo?string("yes","no")} <#-- yes -->
4、逻辑判断
a:
<#if condition>...
<#elseif condition2>...
<#elseif condition3>......
<#else>...
其中空值判断可以写成<#if book.name?? >
</#if>
b:
<#switch value>
<#case refValue1>
...
<#break>
<#case refValue2>
...
<#break>
...
<#case refValueN>
...
<#break>
<#default>
...
</#switch>
5、循环读取
<#list sequence as item>
...
</#list>
空值判断<#if bookList?size = 0></#if>
e.g.
<#list employees as e>
${e_index}. ${e.name}
</#list>
<#if mole?default(0)!=0>