1.freemarker介绍
Apache FreeMarker是一款开源的模板引擎:即一种基于模板和要改变的数据,并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。它不是面向最终用户的,而是一个java类库,是一款程序员可以嵌入他们所开发产品的组件。模板使用FreeMarker Template Language(FTL)模板语言编写,这是一种简单的专用语言。模板用于展示数据,数据模型用于呈现什么数据。
模板 + 数据模型 = 输出
FreeMarker最初是为在MVC Web应用程序框架中生成HTML页面而创建的,但它并不绑定到servlet、HTML或任何与Web相关的内容。它也可以用于非Web应用环境中。
2.FreeMarker特点
(1)强大的模板语言
(2) 多用途且轻量
(3) 智能的国际化和本地化
(4) XML处理能力
(5) 通用的数据模型
3.应用场景
(1) 动态页面:它帮助从开发人员(Java程序员)中分离出网页设计师(HTML设计师)。设计师无需面对模板中的复杂逻辑,在没有程序员来修改或重新编译代码时,也可以修改页面的样式。
(2) 页面静态化:比较适合运用在访问量大(或页面数据量大),但是数据很少与后台进行交互(即对实时性要求不是很高的)的页面,比如商品网站上的商品详情页等。
(3) 代码生成器
4.freemarker pom依赖
<!-- 引⼊入freemarker模板引擎的依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency>
5. HTML模板(src/main/resources/templates/fm/user/freemaker.ftl)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> Springboot freemarker整合html页面 <h1>id: ${userAttribute.id}</h1> <h1>name: ${userAttribute.username}</h1> <h1>pwd: ${userAttribute.pwd}</h1> </body> </html>
6.Freemarker基础配置 => application.properties
# 是否开启freemarker缓存,本地为false,⽣生产建议为true spring.freemarker.cache=false spring.freemarker.charset=UTF-8 spring.freemarker.allow-request-override=false spring.freemarker.check-template-location=true #类型 spring.freemarker.content-type=text/html spring.freemarker.expose-request-attributes=true spring.freemarker.expose-session-attributes=true #⽂文件后缀 spring.freemarker.suffix=.ftl #路路径 spring.freemarker.template-loader-path=classpath:/templates/
7.新建 FreemakerController
package com.xiaobing.demo001.controller; import com.xiaobing.demo001.domain.User; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @Controller @RequestMapping("freemaker") public class FreemakerController { User user = new User(001,"武松","123456"); @GetMapping("test") public String test(ModelMap modelMap){ modelMap.addAttribute("userAttribute",user); return "user/fm/freemaker"; } }
8.启动项目
9.web访问
-------------------------------------- 亲测,学习笔记-----------------------------------