FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。
模板编写为FreeMarker Template Language (FTL)。它是简单的,专用的语言, 不是 像PHP那样成熟的编程语言。 那就意味着要准备数据在真实编程语言中来显示,比如数据库查询和业务运算, 之后模板显示已经准备好的数据。在模板中,你可以专注于如何展现数据, 而在模板之外可以专注于要展示什么数据。以上引用至Freemarker在线手册
1.创建项目,勾选web和freemarker组件,本实例Github地址02-freemarker
下面将不再配合案例,直接书写语法及示例:
<#if condition>
....
<#elseif condition2>
...
<#elseif condition3>
...
<#else>
...
</#if>
示例:
<#if x ==1>
doSomething
<#elseif x==2>
doSomething
<#else>
doSomething
<!--#if-->
<#switch value>
<#case refValue>
...
<#bread>
<#case refValue>
...
<#bread>
<#default>
...
</#switch>
include指令的作用类似于JSP的包含指令,用于包含指定页,include指令的语法格式如下
<#include filename [options]
在上面的语法格式中,两个参数的解释如下
(1) filename:该参数指定被包含的模板文件
(2) options:该参数可以省略,指定包含时的选项,包含encoding和parse两个选项,encoding指定包含页面时所使用的解码集,而parse指定被包含是否作为FTL文件来解析。如果省略了parse选项值,则该选项值默认是true
该指令用于导入FreeMarker模板中的所有变量,并将该变量放置在指定的Map对象中,import 指令的语法格式如下:
<#import path as mapObject>
在上面的语法格式中,path指定要被导入的模板文件,而mapObject是一个Map对象名,通过这行代码,将导致path模板中的所有变量都被放置
该指令用于设置FreeMarker的运行环境,该指令的语法格式如下:
<#setting name = value>
name 的取值范围包括如下几个
locale :该选项指定该模板所用的国家/语言选项
number_format:该选项指定格式化输出数字的格式
boolean_format:该选项指定两个布尔值的语法格式,默认值是"true、false"
date_format,time_format,datetime_format:该选项指定格式化输出日期的格式
time_zone: 设置格式化输出日期时所使用的时区
更多常用语法可以查看键鼠持有者的博客