Springboot详解如何整合使用Thymeleaf

 更新时间:2022年06月28日 09:02:58   作者:奔走的王木木Sir  
这篇文章主要分享了Spring Boot整合使用Thymeleaf,Thymeleaf是新一代的Java模板引擎,类似于Velocity、FreeMarker等传统引擎,关于其更多相关内容,需要的小伙伴可以参考一下

模板引擎的作用就是我们来写一个页面模板,比如有些值呢,是动态的,我们写一些表达式。而这些值,从哪来呢,就是我们在后台封装一些数据。然后把这个模板和这个数据交给我们模板引擎,模板引擎按照我们这个数据帮你把这表达式解析、填充到我们指定的位置,然后把这个数据最终生成一个我们想要的内容给我们写出去,这就是我们这个模板引擎

如果我们没有模板引擎的话,在页面中会提示500

引入Thymeleaf

在项目中加入依赖

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

Thymeleaf 官网:https://www.thymeleaf.org/

Thymeleaf 在Github 的主页:https://github.com/thymeleaf/thymeleaf

Spring官方文档:找到我们对应的版本

https://docs.spring.io/spring-boot/docs/2.3.7.RELEASE/reference/htmlsingle/#using-boot-starter

我们可以有通过上述的页面找到我们需要的依赖,进而复制粘贴即可。

引入之后我们再次运行。nice

注意: 使用Thymeleaf,只需要导入对应的依赖即可。同时我们的html页面试放在我们的templates目录下的。

至于为什么,我们看源码,这段源码在ThymeleafProperties下。

private String prefix = "classpath:/templates/";
private String suffix = ".html";

取值

那么我们应该怎么取值呢

首先在controller下编写代码

@Controller
public class HelloController {
    @RequestMapping("/test")
    public String hello(Model model){
        model.addAttribute("msg","王木木");
        return "test";
    }
}

接下来我们在html页面中编写

因为我们要使用thymeleaf,需要在html文件中导入命名空间的约束。

<html lang="en" xmlns:th="http://www/thymeleaf.org">
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www/thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div th:text="${msg}"></div>
</body>
</html>

成功运行后

这里需要这个的th标签。所有的html元素都科一被thymeleaf替换接管,格式为th:元素名

有无转义

从controller传一段信息

model.addAttribute("msg","<h1>王木木</h1>");

html中使用转义和不转义的情况

<div th:text="${msg}"></div>
<div th:utext="${msg}"></div>

运行结果

循环

同样在controller里传一段信息

model.addAttribute("users", Arrays.asList("wangmumu","王木木"));

接下来在html中进行取值

<h2 th:each="user:${users}" th:text="${user}"></h2>

运行结果

到此这篇关于Springboot详解如何整合使用Thymeleaf的文章就介绍到这了,更多相关Springboot Thymeleaf内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • @Data注解在Boolean类型属性上的大坑及解决

    @Data注解在Boolean类型属性上的大坑及解决

    在使用@Data注解时,如果类中存在Boolean类型的属性,且属性名不是以"is"开头,那么@Data注解生成的get方法名会默认加上"is",导致属性值无法成功拷贝,解决方法是手动添加get方法,覆盖@Data注解生成的方法
    2024-10-10
  • java项目启动失败的问题及解决

    java项目启动失败的问题及解决

    这篇文章主要介绍了java项目启动失败的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • Java访问者模式实现优雅的对象结构处理

    Java访问者模式实现优雅的对象结构处理

    Java访问者模式是一种行为型设计模式,它通过将数据结构和数据操作分离,实现对复杂对象结构的处理。它将数据结构中的每个元素都转换为访问者能够识别的形式,从而使得数据操作可以在不影响数据结构的前提下进行扩展和变化
    2023-04-04
  • 基于Spring-Security自定义登陆错误提示信息

    基于Spring-Security自定义登陆错误提示信息

    这篇文章主要介绍了Spring-Security自定义登陆错误提示信息,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Java 常见异常(Runtime Exception )详细介绍并总结

    Java 常见异常(Runtime Exception )详细介绍并总结

    这篇文章主要介绍了Java 常见异常(Runtime Exception )详细介绍并相关资料,大家在开发Java 应用软件的时候经常会遇到各种异常这里帮大家整理了一部分,并解释如何解决,需要的朋友可以参考下
    2016-10-10
  • Java中switch判断语句典型使用实例

    Java中switch判断语句典型使用实例

    这篇文章主要介绍了Java中switch判断语句典型使用实例,本文直接给出代码实例,在忘记switch语法时特别有用,复制修改即可使用,需要的朋友可以参考下
    2015-06-06
  • 使用Mybatis时SqlSessionFactory对象总是报空指针

    使用Mybatis时SqlSessionFactory对象总是报空指针

    本文主要介绍了使用Mybatis时SqlSessionFactory对象总是报空指针,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-09-09
  • 一文讲透为什么遍历LinkedList要用增强型for循环

    一文讲透为什么遍历LinkedList要用增强型for循环

    这篇文章主要为大家介绍了为什么遍历LinkedList要用增强型for循环的透彻详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • 详解基于spring多数据源动态调用及其事务处理

    详解基于spring多数据源动态调用及其事务处理

    本篇文章主要介绍了基于spring多数据源动态调用及其事务处理 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • SpringBoot集成Caffeine缓存的实现步骤

    SpringBoot集成Caffeine缓存的实现步骤

    Caffeine cache是一个针对Java的高性能缓存库。在本文中,我们将介绍它与Spring Boot如何一起使用。
    2021-05-05

最新评论