资源描述:
《一篇很全面的freemarker教程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一篇很全面的freemarker教程FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由如下4个部分组成:1,文本:直接输出的部分2,注释:<#--...-->格式部分,不会输出3,插值:即${...}或#{...}格式的部分,将使用数据模型中的部分替代输出4,FTL指令:FreeMarker指定,和HTML标记类似,名字前加#予以区分,不会输出下面是一个FreeMarker模板的例子,包含了以上所说的4个部分
Welcome!<2、/title>
<#--注释部分-->
<#--下面使用插值-->
Welcome${user}!
Wehavetheseanimals:
<#--使用FTL指令--><#listanimalsasbeing>
${being.name}for${being.price}Euros
<#list>
1,FTL指令规则在FreeMarker中,
3、使用FTL标签来使用指令,FreeMarker有3种FTL标签,这和HTML标签是完全类似的.1,开始标签:<#directivenameparameter>2,结束标签:#directivename>3,空标签:<#directivenameparameter/>实际上,使用标签时前面的符号#也可能变成@,如果该指令是一个用户指令而不是系统内建指令时,应将#符号改成@符号.使用FTL标签时,应该有正确的嵌套,而不是交叉使用,这和XML标签的用法完全一样.如果全用不存在的指令,FreeMarker不会使用模板输出,而
4、是产生一个错误消息.FreeMarker会忽略FTL标签中的空白字符.值得注意的是<,/>和指令之间不允许有空白字符.2,插值规则FreeMarker的插值有如下两种类型:1,通用插值${expr};2,数字格式化插值:#{expr}或#{expr;format}2.1通用插值对于通用插值,又可以分为以下4种情况:1,插值结果为字符串值:直接输出表达式结果2,插值结果为数字值:根据默认格式(由#setting指令设置)将表达式结果转换成文本输出.可以使用内建的字符串函数格式化单个插值,如下面的例子:<#settionnu
5、mber_format="currency"/><#assignanswer=42/>${answer}${answer?string}<#--thesameas${answer}-->${answer?string.number}${answer?string.currency}${answer?string.percent}${answer}输出结果是:$42.00$42.0042$42.004,200%3,插值结果为日期值:根据默认格式(由#setting指令设置)将表达式结果转换成文本输出.可以使用内建的字符串函
6、数格式化单个插值,如下面的例子:${lastUpdated?string("yyyy-MM-ddHH:mm:sszzzz")}${lastUpdated?string("EEE,MMMd,''yy")}${lastUpdated?string("EEEE,MMMMdd,yyyy,hh:mm:ssa'('zzz')'")}输出结果是:2008-04-0808:08:08PacificDaylightTimeTue,Apr8,'03Tuesday,April08,2003,08:08:08PM(PDT)4,插值结果为布尔值:
7、根据默认格式(由#setting指令设置)将表达式结果转换成文本输出.可以使用内建的字符串函数格式化单个插值,如下面的例子:<#assignfoo=true/>${foo?string("yes","no")}输出结果是:yes2.2数字格式化插值数字格式化插值可采用#{expr;format}形式来格式化数字,其中format可以是:mX:小数部分最小X位MX:小数部分最大X位如下面的例子:<#assignx=2.582/><#assigny=4/>#{x;M2}<#--输出2.58-->#{y;M2}<#--输出4-
8、->#{x;m2}<#--输出2.6-->#{y;m2}<#--输出4.0-->#{x;m1M2}<#--输出2.58-->#{x;m1M2}<#--输出4.0-->3,表达式表达式是FreeMarker模板的核心功能,表达式放置在插值语法${}之中时,表明需要输出表达式的值;表达式语法也可与FreeMarker标签