写点什么

【原创】SpringBoot 快速整合 Thymeleaf 模板引擎

用户头像
田维常
关注
发布于: 2020 年 11 月 04 日

关注公众号Java 后端技术全栈”**


回复“面试”获取全套大厂面试资料


前言


Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 JSP 。相较与其他的模板引擎,它有如下三个极吸引人的特点

Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果。这是由于它支持 html 原型,然后在 html 标签里增加额外

的属性来达到模板 + 数据的展示方式。浏览器解释 html 时会忽略未定义的标签属性,所以 thymeleaf 的模板可以静态地运行;当有数据返回到页面时,Thymeleaf 标签会动态地替换掉静态内容,使页面动态显示。

Thymeleaf 开箱即用的特性。它提供标准和 Spring 标准两种方言,可以直接套用模板实现 JSTL、 OGNL 表达式效果,避免每天套模板、改 JSTL、改标签的困扰。同时开发人员也可以扩展和创建自定义的方言。

Thymeleaf 提供 Spring 标准方言和一个与 SpringMVC 完美集成的可选模块,可以快速的实现表单绑定、属性编辑器、国际化等功能。


Thymeleaf 简述


Thymeleaf 是 Java 模板引擎,Spring 官方推荐使用,也是 Spring Boot 默认的模板引擎;前后端分离之前就是 thymeleaf 这类引擎模板的地盘;其支持 HTML5 的视图模板,能够无缝衔接 springboot;主要用途能进行 web 开发和非 web 开发,比如页面渲染,代码生成,文档生成等等,做些日常的小工具是个很好的选择;


开发传统 Java WEB 工程时,我们可以使用 JSP 页面模板语言,但是在 SpringBoot 中已经不推荐使用了。SpringBoot 支持如下页面模板语言


  • Thymeleaf

  • FreeMarker

  • Velocity

  • Groovy

  • JSP


上面并没有列举所有 SpringBoot 支持的页面模板技术。其中 Thymeleaf 是 SpringBoot 官方所推荐使用的,下面来谈谈 Thymeleaf 一些常用的语法规则。


添加依赖包


<dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>
复制代码


Spring Boot 默认存放模板页面的路径在


src/main/resources/templates或者src/main/view/templates,但是 index.html 默认是在 static 目录下。


这个无论是使用什么模板语言都一样,当然默认路径是可以自定义的,不过一般不推荐这样做。另外 Thymeleaf 默认的页面文件后缀是.html


application.properties 添加配置项


#开启thymeleaf视图解析spring.thymeleaf.enabled=true#编码为UTF-8spring.thymeleaf.encoding=UTF-8#是否使用缓存(开发环境建议使用false,线上使用true)spring.thymeleaf.cache=falsespring.resources.chain.strategy.content.enabled=truespring.resources.chain.strategy.content.paths=/**#严格执行HTML语法格式spring.thymeleaf.mode=HTML#模式spring.thymeleaf.servlet.content-type=text/html
复制代码


在 templates 目录下创建 hello.html,内容


<!DOCTYPE HTML><html xmlns:th="http://www.thymeleaf.org"><head>    <title>SpringBoot thymeleaf 模版渲染</title>    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/></head><body><p th:text="'用户ID:' + ${pwd}"/><p th:text="'用户名称:' + ${name}"/></body></html>
复制代码


controller


@Controller@RequestMapping()public class ThymeleafController {    @RequestMapping(value = "hello", method = RequestMethod.GET)    public String show(Model model){        model.addAttribute("pwd","123456");        model.addAttribute("name","Java后端技术全栈");        return "hello";    }}
复制代码


启动,访问http://localhost:8080/hello



OK,自此 Spring Boot 集成 Thymeleaf 入门搞定。


如果想深入的了解 Thmeleaf 相关的,请关注官网


https://www.thymeleaf.org/doc...


Thymeleaf 的 demo 案例(集成 Spring 、Spring Security 3.x and 4.x)


https://github.com/thymeleaf


推荐阅读


恕我直言,HttpClient 你不一定会用


MySQL查询优化实战篇



发布于: 2020 年 11 月 04 日阅读数: 37
用户头像

田维常

关注

关注公众号:Java后端技术全栈,领500G资料 2020.10.24 加入

关注公众号:Java后端技术全栈,领500G资料

评论

发布
暂无评论
【原创】SpringBoot快速整合Thymeleaf模板引擎