freemarker 教程

freemarker

前言

FreeMarker 是一款模板引擎:即一种基于模板、用来生成输出文本(任何来自于 HTML格式的文本用来自动生成源代码)的通用工具。
FreeMarker 实际上是被设计用来生成 HTML 页面,尤其是通过实现了基于 MVC(Model View Controller, 模型-视图-控制器)模式的 Java Servlet 应用程序。

freemarker的常用指令

模板+数据模型(java)=输出

  • 插值
    ${variableName}
    ${obj.attr}

  • 逻辑运算符,逻辑运算符只能用于布尔值。
    &&:逻辑与;||:逻辑或; !:逻辑非

  • 内建函数
    FreeMarker提供了一些内建函数来转换输出,可以在任何变量后紧跟?,?后紧跟内建函数,就可以通过内建函数来转换输出变量。

  1. 字符串相关常用的内建函数
    html:对字符串进行HTML编码;
    cap_first:使字符串第一个字母大写;
    lower_case:将字符串转成小写;
    upper_case:将字符串转成大写;

  2. 集合相关常用的内建函数

    size:获得集合中元素的个数;

  3. 数字值相关常用的内建函数

    int:取得数字的整数部分。

模板开发语句

  • if使用指令(常用必会)

     <#if x == 1>  
            x is 1  
     </#if>  
     //else if ; else 用法
      <#assign age=23> 
      <#if (age>60)>老年人 
      <#elseif (age>40)>中年人 
      <#elseif (age>20)>青年人 
      <#else> 少年人 
    

</#if>


* switch使用指令(常用必会)

<#switch x>
<#case 1>
1
<#break>
<#case 2>
2
<#break>
<#default>
0
<#break>
</#switch>


* list循环格式(常用必会)

<#list students as s>

${s.no}
${s.name}
${s.sex}

</#list>


* assign指令使用示例,定义模板变量,可以使用模板变量(常用必会)

<#-- 直接定义 -->

<#assign x="Hello ${user}!">
<#-- 定义 -->
<#assign x>
<#list ["星期一", "星期二", "星期三", "星期四", "星期五"] as n>
${n}
</#list>
</#assign>
${x}


* 集合以及对象都可以做叠加(常用必会)
<#list ["星期一","星期二","星期三"] + ["星期四","星期五"] as x> 

${x}
</#list>
<#assign scores = {"语文":86,"数学":78} + {"数学":87,"Java":93}>


*   import指令 (常用必会)
该指令用于导入FreeMarker模板中的所有变量,并将该变量放置在指定的Map对象中,import指令的语法格式如下: `<#import "/lib/common.ftl" as com> `
上面的代码将导入`/lib/common.ftl`模板文件中的所有变量,交将这些变量放置在一个名为`com`的Map对象中. 
 
 
* include语法(常用必会)
可以包含页面:`<#include filename [options]> `,在上面的语法格式中,两个参数的解释如下: 
1.filename:该参数指定被包含的模板文件 ;
2.options:该参数可以省略,指定包含时的选项,包含encoding和parse两个选项,其中encoding指定包含页面时所用的解码集,而parse指定被包含文件是否作为FTL文件来解析,如果省略了parse选项值,则该选项默认是true. 

* noparse指令 
noparse指令指定FreeMarker不处理该指定里包含的内容,该指令的语法格式如下: 

<#noparse>
<#list books as book>
${book.name}作者:${book.author}
</#list>
</#noparse>
输出如下:
<#list books as book>
${book.name}作者:${book.author}
</#list>


* escape , noescape指令  
escape指令导致body区的插值都会被自动加上escape表达式,但不会影响字符串内的插值,只会影响到body内出现的插值,使用escape指令的语法格式如下: 

<#escape identifier as expression>...
<#noescape>...</#noescape>
</#escape>
//看如下的代码:
<#escape x as x?html>
First name:${firstName}
Last name:${lastName}
Maiden name:${maidenName}
</#escape>
//上面的代码等同于:
First name:${firstName?html}
Last name:${lastName?html}
Maiden name:${maidenName?html}

* setting指令 
该指令用于设置FreeMarker的运行环境,该指令的语法格式如下:`<#setting name=value>`,在这个格式中,name的取值范围包含如下几个: 
locale:该选项指定该模板所用的国家/语言选项 
number_format:指定格式化输出数字的格式 
boolean_format:指定两个布尔值的语法格式,默认值是true,false 
date_format,time_format,datetime_format:指定格式化输出日期的格式 
time_zone:设置格式化输出日期时所使用的时区 

* 



* 注释部分

`  <#-- 注释部分 -->`

from:https://www.kancloud.cn/eagles/codingrules/316622 

微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值