FreeMarker模板 套用数据

FTL指令规则

在FreeMarker中,使用FTL标签来使用指令,FreeMarker有3种FTL标签,这和HTML标签是完全类似的.
1.开始标签:<#指令名 参数> 如<#list users as user>
2.结束标签:</#指令名> 如</#list>
3.单标签:<#指令名 参数/>

实际上,使用标签时前面的符号#也可能变成@,如果该指令是一个用户指令而不是系统内建指令时,应将#符号改成@符号.
使用FTL标签时,应该有正确的嵌套,而不是交叉使用,这和XML标签的用法完全一样.如果全用不存在的指令,FreeMarker不会使用模板输出,而是产生一个错误消息.FreeMarker会忽略FTL标签中的空白字符.值得注意的是< , /> 和指令之间不允许有空白字符.

插值规则

FreeMarker的插值有如下两种类型:

1、通用插值${expr};

2、数字格式化插值:#{expr}或#{expr;format}

可以简单理解为输出表达式

通用插值

对于通用插值,又可以分为以下4种情况:

1、插值结果为字符串值:直接输出表达式结果

2、插值结果为数字值:根据默认格式(由#setting指令设置)将表达式结果转换成文本输出.可以使用内建的字符串函数格式化单个插值,如下面的例子:

<#setting number_format="currency"/> <#-- 设置数字格式为货币 -->

<#assign answer=42/> <#-- 赋值 -->

${answer} <#-- 输出 -->

${answer?string} <#-- 输出格式为字符类型,与上面相同-->

${answer?string.number} <#-- 输出格式为数字类型-->

${answer?string.currency} <#-- 输出格式为货币类型-->

${answer?string.percent} <#-- 输出格式为百分比类型-->

输出结果是:

$42.00

$42.00

42

$42.00

4,200%

插值结果为日期值:

根据默认格式(由#setting指令设置)将表达式结果转换成文本输出.可以使用内建的字符串函数格式化单个插值,如下面的例子:

${lastUpdated?string("yyyy-MM-dd HH:mm:ss zzzz")}

${lastUpdated?string("EEE, MMM d, ''yy")}

${lastUpdated?string("EEEE, MMMM dd, yyyy, hh:mm:ss a '('zzz')'")}

输出结果是:

2008-04-08 08:08:08 Pacific Daylight Time

Tue, Apr 8, '03

Tuesday, April 08, 2003, 08:08:08 PM (PDT)

插值结果为布尔值:

根据默认格式(由#setting指令设置)将表达式结果转换成文本输出.可以使用内建的字符串函数格式化单个插值,如下面的例子:

<#assign foo=true/>
${foo?string("yes", "no")}
输出结果是:
yes

值为Null

${(itemOrdersModel.sellUserNameNi)!""}


参照:
https://www.cnblogs.com/best/archive/2016/08/01/5681511.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容