Freemarker模板引擎
1:技术概述
1.1模板引擎技术
Freemarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写,具有以下特点:
(1)Freemarker 适合被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序。
(2)虽然Freemarker 具有一些编程的能力,但通常由Java程序准备要显示的数据,由Freemarker 生成页面,通过模板显示准备的数据 。
(3)Freemarker 不是一个Web应用框架,而适合作为Web应用框架一个组件。
(4)Freemarker 与容器无关,因为它并不知道HTTP或Servlet。
(5)Freemarker 更适合作为Model2框架(如Struts)的视图组件,你也可以在模板中使用JSP标记库。
(6)Freemarker 是免费的 。
下载地址:
https://sourceforge.net/projects/freemarker-ide/files/freemarker-ide/
下载freemarker-ide-0.9.14.zip (909.6 kB)
2:为什么要使用freemarker
在互联网软件内容网站中 一般首页的访问量大,为了提供首页的访问效率,一般 首页的内容以及其中的新闻等信息都可以实现html静态化 浏览器访问时 设置浏览器的缓存策略和生成静态页面的周期一致 可以使访问效率大大提升 同时配合cdn处理图片 js css等资源 可以在首页访问时 理论完全脱离数据库 降低应用压力
2:Freemarker安装
将freemarker的jar加入项目,下载freemarker的插件,找到它的plugins目录,将该目录下的文件拷贝到eclipse的plugins目录下,重启eclipse,新建个ftl文件,该文件中的内容显示为不同的颜色,可以视为插件安装成功。
例:
3:基本语法
1:FreeMarker标记
FreeMarker标记的设计非常精炼,只有三种:
1) $ : ${expression} FreeMarker会在输出时用实际值进行替代
例如:${stockNum?default(‘’)}
2) # :标准的FTL标记。大部分FreeMarker指令都以#开始,可以明显地与html标记区分,
<#if user = "BigJoe">our beloved leader</#if>。
同时,FTL文件的注释包含在<#--和-->(而不是<!--和-->)之间
3) @作为用户定义指令使用宏变量时,使用@替代FTL标记中的#。后面将详细介绍宏
2:标准的FTL标记指令
1) if, else, elseif语法
<#if 条件1>内容或逻辑
<#elseif 条件2>内容或