初步接触Freemarker

初步接触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??>
    

hello, ${user}!

#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

你可能感兴趣的:(模板-Freemarker)