初步接触Freemarker
1、Freemarker是什么
2、了解Freemarker
1、Freemarker需要一个模板和一个数据模型来生成输出:模板+数据模型=输出
2、${…}:Freemarker将在输出中用大括号内表达式的实际值替换它。——-插值
3、指令用#开头
4、模板是用FTL语言(用于Freemarker模板语言),FTL区分大小写
3、常用指令:
1、if-else指令
<#--if指令用法-->
<#if A.price < B.price>
A今天更优惠
<#else>
B今天更优惠
</#if>
2、list指令
<#-- list指令用法 -->
<#list sequence as loopVariable>
repeatThis
</#list>
示例一:
<table border=1>
<#list animals as animal>
<tr>
<td>
${animal.name}
</td>
</tr>
</#list>
</table>
示例二(list, items[列表条目], sep[分隔符], else):
<#list misc.fruits>
<p>fruits:</p>
<ul>
<#items as fruit>
<li>
${fruit} <#sep>and</#sep>
</li>
</#items>
</ul>
<#else>
<p>我们没有水果了</p>
</#list>
3、include指令(将另一个文件引入模板)
<#include filename>
or
<#include filename options>
options包含两个属性:
注意:
encoding=”GBK” 编码格式
parse=true 是否作为FTL语法解析,默认是true. false就是以文本方式引入
注意在ftl文件里布尔值都是直接赋值的如parse=true,而不是parse=”true”
<#include "/aaa.html" encoding="UTF-8">
4、遗失参数方式
如果省略默认值,那么它将是空字符串和空序列,同时是空的散列
<#--给一个默认值,user为空时启用-->
<h1>Hello, ${user!"visitor"}!</h1>
<#if user??>
<h1>hello, ${user}!</h1>
</#if>
5、模板赋值
<#assign s="abc">
${s}
<#--会输出abc-->
6、内置插件
如:testString=”Tom&Jerry”
${testString?upper_case} -------------(会输出TOM&JERRY)
${lastUpdated?string("yyyy-MM-dd HH:mm:ss")}
7、方法调用
${repeat("Foo", 3)} ------------------FooFooFoo
${cur_time?date}----------------------2018-3-28
${cur_time?datetime}------------------2018-3-28 16:24:18
${cur_time?time}----------------------16:25:18