一、概述
FreeMarker 是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯 Java 编写,FreeMarker 被设计用来生成 HTML Web 页面,特别是基于 MVC 模式的应用程序,虽然 FreeMarker 具有一些编程的能力,但通常由 Java 程序准备要显示的数据,由FreeMarker 生成页面,通过模板显示准备的数据(如下图)
FreeMarker 不是一个 Web 应用框架,而适合作为 Web 应用框架一个组件。FreeMarker 与容器无关,因为它并不知道 HTTP 或 Servlet;FreeMarker 同样可以应用于非Web应用程序环境,FreeMarker 更适合作为 Model2 框架(如 Struts)的视图组件,你也可以在模板中使用 JSP标记库。另外,FreeMarker是免费的。
二、Freemarker的准备条件
freemarker.2.3.16.jar,下载地址这里就不贴了..(这个jar包其实在struts2里面)
三、Freemarker生成静态页面的原理
Freemarker 生成静态页面,首先需要使用自己定义的模板页面,这个模板页面可以是最最普通的html,也可以是嵌套freemarker中的 取值表达式, 标签或者自定义标签等等,然后后台读取这个模板页面,解析其中的标签完成相对应的操作, 然后采用键值对的方式传递参数替换模板中的的取值表达式,做完之后 根据配置的路径生成一个新的html页面, 以达到静态化访问的目的。
四、Freemarker提供的标签,目前只需要知道这几个
Freemarker提供了很多有用 常用的标签,Freemarker标签都是<#标签名称>这样子命名的,${value} 表示输出变量名的内容 ,具体如下:
1、list:该标签主要是进行迭代服务器端传递过来的List集合,比如:
name是list循环的时候取的一个循环变量,freemarker在解析list标签的时候,等价于:
2、if:该标签主要是做if判断用的,比如:
这个是条件判断标签,要注意的是条件等式必须用括号括起来, 等价于:
3、include:该标签用于导入文件用的
webstorm如何高亮显示.ftl模板文件
打开Webstorm的setting,可以使用快捷键:“Ctrl + Alt + s”打开setting之后,在Editor中的File Types(也可以直接用setting的搜索功能搜索file types) 中的Recognized File Types框中选择Html Files(因为ftl和tpl模板本身就是html文件,所以就用html文件的高亮格式即可),然后在Registered Patterns中添加“”*.ftl“或者”“*.tpl”。点击ok即可