SpringBoot 整合freemarker

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访问

--------------------------------------  亲测,学习笔记-----------------------------------

posted @ 2021-04-13 10:54  o小兵o  阅读(1184)  评论(0编辑  收藏  举报