返回顶部
首页 > 资讯 > 后端开发 > JAVA >Thymeleaf详细教程(SpringBoot版)
  • 676
分享到

Thymeleaf详细教程(SpringBoot版)

javaspringboot 2023-09-30 05:09:53 676人浏览 泡泡鱼
摘要

目录 一、简单介绍 二、引入依赖 三、创建页面 3.1 关于静态资源目录相关(选看) 问题1:SpringBoot静态资源目录在哪里? 问题2:如何修改SpringBoot默认的静态资源路径? 问题3:如何给静态资源添加访问前缀? 问题4:

目录

一、简单介绍

二、引入依赖

三、创建页面

3.1 关于静态资源目录相关(选看)

问题1:SpringBoot静态资源目录在哪里?

问题2:如何修改SpringBoot默认的静态资源路径?

问题3:如何给静态资源添加访问前缀?

问题4:添加全局前缀

3.2 创建文件模板(选看)

3.3 thymeleaf 简单页面演示

四、thymeleaf语法讲解

4.1 引用名称空间

4.2 基本使用方法

4.2.1 引用web静态资源

4.2.2 访问model模型中的数据

4.2.3 数据遍历

4.2.4 条件判断

4.3 实际代码演示


现在市面上大多数的项目都是前后端分离的,以Vue或者Reactspring相结合的前后端。

但是不排除个别项目还会有混合开发,甚至在维护一些老的项目时,都还在用jsP。因此,会混合开发也是非常重要的。假如领导希望你个人单独负责完成一个很小的项目,而你又不会前端的Vue等技术,那么直接用混合开发,Thymeleaf就是一个很好的选择。它的学习成本相比学习Vue框架要小的多的多。

目前Java中比较流行的模板引擎有Thymeleaf和Apache Freemarker。

一、简单介绍

        Thymeleaf是一个服务器端 Java 模板引擎,能够处理 html、XML、CSSjavascript 等模板文件。Thymeleaf 模板可以直接当作静态原型来使用,它主要目标是为开发者的开发工作流程带来优雅的自然模板,也是 Java 服务器端 HTML5 开发的理想选择。

        也就是说,当我们项目不用前后端分离进行开发的话,混合开发就需要使用到模板引擎。如果是纯静态页面,当然无需用到模板引擎。可是大多数情况下,我们的页面都是动态的,比如通过数据库查询将数据返回给页面进行动态展示,如果不用模板引擎的特定语法,是无法实现的。

话不多说,我们开始学习如何使用吧~

二、引入依赖

    org.springframework.boot    spring-boot-starter-thymeleaf

三、创建页面

我们创建的页面文件需要放在templates里面。

注意:

假如你的页面都是静态的,那么完全可以放在静态资源目录下。

但是页面如果是动态的,Thymeleaf就要求放在templates下。

放在templates目录下,我们是没法直接访问它下面的静态资源的。必须由具体的控制器方法通过转发到该目录下指定的html页面。当然,如果你实在希望直接通过例如localhost:8566/index.html浏览到该页面,你也可以选择将templates目录设置为静态资源目录。

3.1 关于静态资源目录相关(选看)

问题1:SpringBoot静态资源目录在哪里?

SpringBoot默认设置了静态资源路径, 默认将:当前项目根路径 / + 静态资源名的访问映射到下面的目录:

classpath:/static/

classpath:/public/

classpath:/resources/

classpath:/META-INF/resources/

 

即,上面四个文件夹都是对应着当前项目的根路径 /,我们把静态资源放在任意一个都可以!

问题2:如何修改SpringBoot默认的静态资源路径?

常见的有两种方法。

方法一:

        在application.properties文件中添加配置

spring.resources.static-locations=classpath:/pig/,classpath:/dog/

        这样,再将静态资源放在pig或者dog目录下即可映射到根路径进行访问了。

        当然也可以直接指定一个硬盘上的任意目录:

#自定义的属性,指定了一个路径,注意要以/结尾upload-path=D:/verifies/spring.resources.static-locations=classpath:/pig/,classpath:/dog/,file:${upload-path}

方法二:

        通过编写配置类实现WEBmvcConfigurer的addResourceHandlers方法来完成

@Configurationpublic class WebMvcConfig implements WebMvcConfigurer {    @Override    public void addResourceHandlers(ResourceHandlerReGIStry registry) {        registry.addResourceHandler("/my/**") // 指的是对外暴露的访问路径 如果添加了拦截器配置,一定要保证该路径是放行的才能直接访问,否则也要被拦截判断                .addResourceLocations("classpath:/dog/");// 指的是内部文件放置的目录,classpath目录在Spring Boot中指的是resources文件夹,                //.addResourceLocations("file:H:\\image\\avatar\\");            // 值得注意的是,配置的目录如果在classpath目录下,那么项目运行后,再往里面添加资源是看不到新添加的资源的,只有重启才能看见            // 配置的目录在本地则没有影响            // 当然,我们也可以选择在application.properties文件中通过spring.resources.static-locations=classpath:/haha/配置    }}

问题3:如何给静态资源添加访问前缀?

默认情况下,是无前缀的

即spring.mvc.static-path-pattern的默认值为:/**

也就是说静态资源文件夹直接映射到当前项目根路径/

如果添加了访问前缀,意味着我们访问变成了:

        当前项目根路径 + 访问前缀  + 静态资源名

例如:localhost:8566/api/login.html

我们在访问任何静态资源的时候,都需要在根路径后面同意加上这个叫 api 的前缀

设置方法:

spring.mvc.static-path-pattern=/api/**

问题4:添加全局前缀

server.servlet.context-path: /springboot

添加全局前缀意味着所有资源在访问时,都要带着这个全局前缀,不仅限于静态资源,包括控制器方法等。

举个例子:

假如我们现在既配置了静态资源访问前缀springboot又配置了全局前缀api,

那么我们再访问上述静态资源login.html时,就必须这样访问:

localhost:8566/springboot/api/login.html

访问控制器方法时,就得访问例如:localhost:8566/springboot/login

好了,回到正题。继续讲解Thymeleaf的使用!

Thymeleaf和JSP很像,都可以通过springMVC渲染数据。下面我们开始创建页面演示一下。

创建页面,我们也可以为idea创建一个文件模板,这样以后再写html页面,就不需要每次都加上名称空间了,自动就生成好。

你也可以选择跳过3.2节自行创建一个html页面。

3.2 创建文件模板(选看)

3.3 thymeleaf 简单页面演示

编写index.html页面如下

访问静态页面看看

 

编写控制器方法,转发到该页面,并为该页面的参数传值

 启动项目,访问该接口

 

 成功!

四、thymeleaf语法讲解

4.1 引用名称空间

在html标签中加上如下属性,这是使用 thymeleaf语法必备的。

4.2 基本使用方法

thymeleaf中要动态传值,必须使用th:指定指令

4.2.1 引用web静态资源

Thymeleaf通过”@{}”来引用web静态资源,例如:

为什么不从/static目录开始写?是因为默认就到静态资源目录

4.2.2 访问model模型中的数据

例如访问一个user对象的name属性,通过"${}"来获取

4.2.3 数据遍历

例如遍历一个userlist集合,使用th:each做循环迭代,并使用${对象.属性}来访问具体的值

    tyrone    18

我们通过具体代码演示,跟着代码看更加直观。

4.2.4 条件判断

    No messages

4.3 实际代码演示

首先创建一个实体类

@Datapublic class UserVo {    private String username;    private Integer sex;    private Integer age;    private Boolean isVip;    private Integer status;    private Date createTime;    private List tags;}

 创建一个basic.html页面,核心代码如下:

        document

默认的用户

默认的用户

默认的年龄


默认的用户

默认的年龄


会员


未知


 我们先来访问静态页面,显然是无法获取到动态值的。

 然后我们编写控制器方法,给它传值

    @GetMapping("/basicInfo")    public String basic(Model model){        UserVo userVo = new UserVo();        userVo.setUsername("高启强");        userVo.setAge(45);        userVo.setSex(1);        userVo.setIsVip(true);        userVo.setStatus(0);        userVo.setTags(Arrays.asList("强盛集团CEO","陈书婷老公","臭卖鱼的"));        model.addAttribute("user",userVo);        return "basic";    }

启动项目,测试接口

至此,thymeleaf基本的使用方法就介绍完毕。由于时间有限,后续再增加更详细的内容,感谢!

来源地址:https://blog.csdn.net/YuanFudao/article/details/129085281

--结束END--

本文标题: Thymeleaf详细教程(SpringBoot版)

本文链接: https://lsjlt.com/news/421716.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Thymeleaf详细教程(SpringBoot版)
    目录 一、简单介绍 二、引入依赖 三、创建页面 3.1 关于静态资源目录相关(选看) 问题1:SpringBoot静态资源目录在哪里? 问题2:如何修改SpringBoot默认的静态资源路径? 问题3:如何给静态资源添加访问前缀? 问题4:...
    99+
    2023-09-30
    java springboot
  • SpringBoot2.x 集成 Thymeleaf的详细教程
    目录一、Thymeleaf简介二、集成Thymeleaf三、Thymeleaf常用语法一、Thymeleaf简介 Thymeleaf是面向Web和独立环境的现代服务器Java模板引擎...
    99+
    2024-04-02
  • SpringBoot整合Thymeleaf小项目及详细流程
    目录1.项目简绍2.设计流程3.项目展示4.主要代码1.验证码的生成2.userController的控制层设计3.employeeController控制层的代码4.前端控制配置类...
    99+
    2024-04-02
  • springboot+thymeleaf+mybatis实现甘特图的详细过程
    首先我们要明白:这个甘特图需要哪些动态数据。 (1)需要:ID,tName,number,计划开始时间,开始时间,计划结束时间,结束时间,项目负责人,参与人,知情人ID,计划时长(可...
    99+
    2024-04-02
  • SpringBoot超详细讲解Thymeleaf模板引擎
    Jsp是最早的模板技术,用来处理视图层的,用来做数据显示的模板 B S结构: B:浏览器:用来显示数据,发送请求,没有处理能力 发送一个请求,访问a.jsp,a.jsp在服务器端变...
    99+
    2024-04-02
  • SpringBoot整合Zookeeper详细教程
    目录一、引言二、引入依赖三、编写客户端3.1、ZookeeperConfig3.2、ZookeeperWatches3.3、ZookeeperController一、引言 使用原生的...
    99+
    2022-12-23
    SpringBoot整合Zookeeper SpringBoot Zookeeper
  • SpringBoot详细讲解视图整合引擎thymeleaf
    目录1. 支持的视图技术2. Thymeleaf2.1 Thymeleaf语法2.2 标准表达式1. 变量表达式 ${…}2. 选择变量表达式 *{…}3...
    99+
    2024-04-02
  • SpringBoot整合MyBatis超详细教程
    目录1.整合MyBatis操作1.1.配置模式1.2.注解模式1.3.混合模式1.整合MyBatis操作 前面一篇提到了SpringBoot整合基础的数据源JDBC、Druid操作,...
    99+
    2024-04-02
  • spring/springboot整合dubbo详细教程
    目录一、基本使用二、spring整合dubbo2.1 spring-common模块:2.2 spring-user模块:2.3 spring-order模块:2...
    99+
    2024-04-02
  • springboot集成Mybatis的详细教程
    springboot集成Mybatis 第一步: 添加Mybatis依赖 <!--mybatis整合springboot框架的起步依赖--> <dependen...
    99+
    2024-04-02
  • Springboot应用中线程池配置详细教程(最新2021版)
    前言:日常开发中我们常用ThreadPoolExecutor提供的线程池服务帮我们管理线程,在Springboot中更是提供了@Async注解来简化业务逻辑提交到线程池中执行的过程。...
    99+
    2024-04-02
  • Java之SpringBoot-Thymeleaf详情
    目录1、About Thymeleaf2、Hello Thymeleaf3、Thymeleaf 表达式3.1配置文件声明3.2 常用表达式3.2.1 0x01 ${} 变量...
    99+
    2024-04-02
  • SpringBoot整合Thymeleaf详解
    目录 Thymeleaf基本介绍基本语法th:text文本替换th:if和th:unless文本替换th:each foreach循环th:id、th:value、th:c...
    99+
    2024-04-02
  • 2023最新版IDEA创建一个SpringBoot项目 (详细教程)
    在IDEA中创建一个SpringBoot项目 springboot是我们java开发中最流行的框架之一,下面我们看看如何在idea中创建一个springboot项目。 文章目录 在IDEA中...
    99+
    2023-09-17
    spring boot spring intellij-idea
  • NLTK库安装教程(详细版)
    NLTK,Natural Language Toolkit(Python自然语言工具包) 安装步骤 1.打开cmd命令,输入: pip install nltk 运行安装 2.安装完成后,搜索...
    99+
    2023-09-03
    python
  • Anaconda安装教程(超详细版)
    目录 一、Anaconda简介 二、运行环境 三、安装Anaconda 四、手动配置环境变量(重点) 五、测试Anaconda环境是否配置成功 一、Anaconda简介 Anaconda,一个开源的Python发行版本,可用于管理Pyt...
    99+
    2023-09-01
    python 开发语言 big data 大数据
  • springboot中使用ElasticSearch的详细教程
    新建项目 新建一个springboot项目springboot_es用于本次与ElasticSearch的整合,如下图 引入依赖 修改我们的pom.xml,加入spring-boo...
    99+
    2024-04-02
  • 最新版Python安装详细教程
    前言 目前,Python有两个版本,一个是2.x版,一个是3.x版,这两个版本是不兼容的。由于3.x版越来越普及,我们的教程将以最新的Python 3.9版本为基础。 1、下载 Python官网主要有python的About (简介)、Do...
    99+
    2023-08-30
    学习 python
  • MySQL5.7安装详细版图文教程
    很早之前作者发过一个MySQL配置教程,很多粉丝小伙伴反应说再出一个安装教程,正好换了作者换了新公司,公司发的电脑啥都没有,现在再出一个MySQL5.7的安装教程。 本文只是MySQL5.7的安装教程...
    99+
    2023-09-13
    mysql 数据库 java
  • 安装原版win7的详细教程
    如何安装纯净版的Windows 7?纯净版的Windows 7没有任何第三方软件,能够保持电脑处于最干净的状态。那么原版win7怎么安装呢?接下来让小编介绍一份安装原版win7的详细介绍给大家,感兴趣的小伙伴们快来看看吧!1、到小白官网下载...
    99+
    2023-07-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作