Spring Boot 整合模板引擎 Freemaker、thymeleaf

1.常用的 Spring Boot 2.x 模板引擎和官方推荐案例

1)JSP(后端渲染,消耗性能)

Java Server Pages 动态网页技术,由应用服务器中的 JSP 引擎来编译和执行,再将生成的整个页面返回给客户端。优点是:可以写java代码、支持表达式语言(el、jstl)、内建函数。

但 JSP 本质上是 Servlet,它非常占用 JVM 内存。Java Web 官方推荐,但 Spring Boot 不推荐https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/reference/htmlsingle/#boot-features-jsp-limitations

2)Freemarker

FreeMarker Template Language(FTL) 文件一般保存为 xxx.ftl。严格依赖 MVC 模式,不依赖 Servlet 容器(不占用JVM内存),支持内建函数

3)Thymeleaf (主推)

轻量级的模板引擎(负责逻辑业务的不推荐,解析 DOM 或者 XML 会占用多的内存)。可以直接在浏览器中打开且正确显示模板页面。直接是 html 结尾,可以直接编辑。

2.Spring Boot 整合模板引擎 freemarker

步骤1:引入 Freemarker 相关 maven 依赖

<!-- 引入freemarker模板引擎的依赖 -->
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

步骤2:Freemarker 基础配置

# 是否开启thymeleaf缓存,本地为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/

步骤3:新建 .ftl 文件

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
  </head>
  <body>
    <h1> ${setting.name} </h1>
    <h1> ${setting.domain} </h1>
  </body>
</html>

步骤4:简单测试代码编写和访问

@Controller
@RequestMapping("/freemaker")
public class FreemakerController {
    @Autowired
    private ServerSettings setting;

    @GetMapping("hello")
    public String index(ModelMap modelMap){

        modelMap.addAttribute("setting", setting);

        return "fm/index";  //不用加后缀,在配置文件里面已经指定了后缀
    }
}

3.Spring Boot 整合模板引擎 thymeleaf

官网地址:https://www.thymeleaf.org/doc/articles/thymeleaf3migration.html

步骤1:引入 thymeleaf 相关 maven 依赖

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

步骤2:thymeleaf 基础配置

#开发时关闭缓存,不然没法看到实时页面
spring.thymeleaf.cache=false
spring.thymeleaf.mode=HTML5
#前缀
spring.thymeleaf.prefix=classpath:/templates/
#编码
spring.thymeleaf.encoding=UTF-8
#类型
spring.thymeleaf.content-type=text/html
#名称的后缀
spring.thymeleaf.suffix=.html

步骤3:新建 .html 文件

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
  </head>
  <body>
    模板引擎整合thymeleaf  admin/info.html
    <h1 >测试内容,未加th表达式</h1>
    <h1 th:text="${setting.name}">测试内容</h1>
  </body>
</html>

步骤4:简单测试代码编写和访问

@Controller
@RequestMapping("/tyhmeleaf")
public class ThymeleafController {
    @Autowired
    private ServerSettings setting;

    @GetMapping("hello")
    public String index(){
        return "index";  //不用加后缀,在配置文件里面已经指定了后缀
    }

    @GetMapping("info")
    public String admin(ModelMap modelMap){
        modelMap.addAttribute("setting", setting);
        return "admin/info";  //不用加后缀,在配置文件里面已经指定了后缀
    }
}

注意:$表达式只能写在th标签内部

快速入门:https://www.thymeleaf.org/doc/articles/standarddialect5minutes.html

原文地址:https://www.cnblogs.com/jwen1994/p/11241453.html

时间: 2024-10-10 00:52:47

Spring Boot 整合模板引擎 Freemaker、thymeleaf的相关文章

小D课堂【SpringBoot】常用Starter介绍和整合模板引擎Freemaker、thymeleaf

========7.SpringBoot常用Starter介绍和整合模板引擎Freemaker.thymeleaf 4节课========================= 1.SpringBoot Starter讲解 简介:介绍什么是SpringBoot Starter和主要作用 1.官网地址:https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/reference/htmlsingle/#using-boot-starter

spring boot ----&gt; 常用模板freemarker和thymeleaf

===========================freemarker=================================== freemarker 官网:https://freemarker.apache.org/ freemarker starter: 1 <dependency> 2 <groupId>org.springframework.boot</groupId> 3 <artifactId>spring-boot-starte

spring boot 整合spring Data JPA+Spring Security+Thymeleaf框架(上)

最近上班太忙所以耽搁了给大家分享实战springboot 框架的使用. 下面是spring boot 整合多个框架的使用. 首先是准备工作要做好. 第一  导入框架所需的包,我们用的事maven 进行对包的管理. 以上的举例是本人的H5DS的真实的后台管理项目,这个项目正在盛情融资中,各位多多捧点人场.关注一下软件发展的动态,说不定以后就是您的生活不可或缺的软件哟. 点击打开链接.闲话少说.现在切入正题. 第二,写点配置文件 第三,spring data -设计一个简单的po关系,这里需要下载一

Spring boot整合jsp

这几天在集中学习Spring boot+Shiro框架,因为之前view层用jsp比较多,所以想在spring boot中配置jsp,但是spring boot官方不推荐使用jsp,因为jsp相对于一些模板引擎,性能都比较低,官方推荐使用thymeleaf,但是Spring boot整合jsp的过程已经完成,在这里记录一下. 这篇博文是在LZ上篇文章spring boot+mybatis整合基础上写的,开发工具仍然是Intellij idea.这篇文章的重点是Intellij idea的设置,否

spring boot整合jsp的那些坑(spring boot 学习笔记之三)

Spring Boot 整合 Jsp 步骤: 1.新建一个spring boot项目 2.修改pom文件 <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>        </dependency>        <depend

五、spring boot整合mybatis-plus

spring boot整合mybatis-plus 简介 mybatis 增强工具包,简化 CRUD 操作. 文档 http://mp.baomidou.com http://mybatis.plus 优点 | Advantages 无侵入:Mybatis-Plus 在 Mybatis 的基础上进行扩展,只做增强不做改变,引入 Mybatis-Plus 不会对您现有的 Mybatis 构架产生任何影响,而且 MP 支持所有 Mybatis 原生的特性 依赖少:仅仅依赖 Mybatis 以及 My

Spring Boot整合Spring Security总结

一.创建Spring Boot项目 引入Thymeleaf和Web模块以及Spring Security模块方便进行测试,先在pom文件中将 spring-boot-starter-security 的依赖注解掉测试. 二.创建几个用于测试的页面 <!DOCTYPE html><!--index页面--> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head&g

spring boot 整合 quartz 集群环境 实现 动态定时任务配置【原】

最近做了一个spring boot 整合 quartz  实现 动态定时任务配置,在集群环境下运行的 任务.能够对定时任务,动态的进行增删改查,界面效果图如下: 1. 在项目中引入jar 2. 将需要的表导入数据库 官网上有不同数据库的脚本,找到对应的,导入即可 3. java 代码 将quartz 的相关配置文件,配置为暴露bean,方便后期引用. 有一处关键的地方,就是注入spring 上下文,也可以算是一个坑.如果,不注入spring 上下文,那么新添加的定时任务job,是新new 的一个

企业分布式微服务云SpringCloud SpringBoot mybatis (十三)Spring Boot整合MyBatis

Spring中整合MyBatis就不多说了,最近大量使用Spring Boot,因此整理一下Spring Boot中整合MyBatis的步骤.搜了一下Spring Boot整合MyBatis的文章,方法都比较老,比较繁琐.查了一下文档,实际已经支持较为简单的整合与使用.下面就来详细介绍如何在Spring Boot中整合MyBatis,并通过注解方式实现映射. 整合MyBatis 新建Spring Boot项目,或以Chapter1为基础来操作 pom.xml中引入依赖 这里用到spring-bo