FreeMarker一般的使用方式、SpringBoot + Web + FreeMarker的使用方式
声明一:文章不是关键,关键是放在本文末尾的FreeMarker测试项目链接,建议读者下载测试项目(测
试代码已写好)运行,自己进行测试理解。
声明二:本文以纯图片的形式简单介绍FreeMarker的使用,具体文字版测试示例项目可去本文末下载。
FreeMarker是一款模板引擎:即一种基于模板和要改变的数据,并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。
FreeMarker功能是:
注:虽然模板文件可以是任意后缀名的文件,但是我们一般都约定俗成的将模板文件后缀名改为ftl;这样一来,任何
人一看就知道谁是FreeMarker的模板文件。
注:传入的数据必须要有一个key才行,FreeMarker模板语言以该key为根,并按照其一定的表达式语言,定位到根下的
各个节点,从而取出相应的数据。
追注:可类比JSP进行理解。
FreeMarker一般的使用方式:
模板文件(normal.ftl)是这样的:
代码是这样的:
提示:上述代码需要引入FreeMarker的Jar包。
结果文件(normal.html)是这样的:
SpringBoot整合FreeMarker:
第一步:在pom.xml中引入相关的依赖。
注:这里引入spring-boot-starter-freemarker才是关键;其余依赖都可以不引入;不过考虑到在接下来会给一个使用示
例,所以还引入了web支持、快速快发lombok、热部署devtools;当然,test是基本依赖。
第二步:编辑系统配置文件application.properties,指定以什么后缀名的文件作为模板、指定在哪个文件夹下去找模板文件。
注:更多配置可详见源码或查阅相关文档。
SpringBoot通过WEB使用FreeMarker的方式:
关键点说明:
-
给控制层方法额外加一个SpringMVC数据处理模型(Model或ModelMap或Map)。
注:对于那些请求本身就带有参数的方法,只需要额外加数据处理模型即可,不影响原参数的获取。 -
方法返回值为String,返回模板文件(相对于spring.freemarker.template-loader-path参数指定的文件夹)的文件名路径(不要后缀)。
无参请求的使用方式如:
模板位置在:
使用方式,如:
注:将模板model_test.ftl所需的数据放入Model或ModelMap或Map中即可。
有参请求的使用方式如:
模板位置在:
使用方式,如:
注:数据处理模型Model、ModelMap、Map任选其一即可,上图中是以Model示例的。
FreeMarker常用语法(放大图片看):
提示:更多用法可浏览官网。
笔者寄语:
希望读者根据以下链接,下载项目,自己运行项目进行理解,这里先说明一下项目结构: