iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Spring Boot 整合 Thymeleaf 实例分享
  • 575
分享到

Spring Boot 整合 Thymeleaf 实例分享

2024-04-02 19:04:59 575人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录一、什么是 Thymeleaf二、整合过程准备过程添加 Thymeleaf 依赖编写实体类和 Controller创建Thymeleaf 模板三、测试一、什么是 Thymelea

一、什么是 Thymeleaf

Thymeleaf 是新一代的 Java 模板引擎,类似于 Velocity、FreeMarker 等传统引擎,其语言和 html 很接近,而且扩展性更高;

Thymeleaf 的主要目的是将优雅的模板引入开发工作流程中,并将 HTML 在浏览器中正确显示。同时能够作为静态引擎,让开发成员之间更方便协作开发;

Spring Boot 官方推荐使用模板,而且 spring Boot 也为 Thymeleaf 提供了完整的自动化 配置解决方案;

Thymeleaf 使用教程请戳 Tutorial: Using Thymeleaf,配合 Spring 使用的教程请戳 Tutorial: Thymeleaf + Spring。

二、整合过程

准备过程

正式开始整合过程之前,这里先给出本文的搭建环境,方便大家进行后续内容的学习

  • jdk 11(理论上其他版本的 JDK 也是可以的,但是更为推荐 JDK 1.8 及以后的版本)
  • idea(这里没有啥要求,但我个人的话是出新的版本我就会更新,虽然臃肿,但是更新了确实好用 ?)
  • SpringBoot 2.x(现在主流应该都是 2.x 版本,1.x 的都是老一点的版本了)

添加 Thymeleaf 依赖

添加 Thymeleaf 依赖有两种方式:

  • 第一种

在新建项目时添加,在 Templeate Engines 中勾选 Thymeleaf;

  • 第二种

对于忘记在新建项目时未添加 Thymeleaf 依赖的项目,可以直接在项目的 pom.xml 中手动添加依赖即可;

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

编写实体类和 Controller

  • 新建实体类 User

这里因为使用 Lombok,所以省去了各种 setter、getter,同时还省去了各种构造方法和重写 toString() 等方法,大大简化了代码。而我们所要做的,仅仅是在 pom.xml 中添加 Lombok 的依赖,然后在我们的实体类中加入对应的注解即可。

以下是在 pom.xml 中插入 Lombok 依赖的对应代码。

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>

然后我们就可以编写我们的实体类,这里主要用到了 @Data、@Component、@AllArgsConstructor 、NoArgsConstructor 四个注解,其中各个注解的含义如下:

  • @Component:把类实例化到 Spring 容器,相当于在配置文件中配置;
  • @Data :给类的所有属性提供 get 和 set 方法,此外还有 equals、canEqual、hashCode、toString 方法以及 默认参数为空的构造方法;
  • @AllArgsConstructor:为类提供一个 全参构造方法,但此时不再提供默认构造方法;
  • @NoArgsConstructor:因为使用了 AllArgsConstructor 会导致类没有默认空参构造方法,所以此时需要它为类提供一个 无参构造方法;
package com.cunyu.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.stereotype.Component;



@Component
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private int age;
    private String name;
    private String email;
}
  • 编写 Controller

此时主要需要注意的是 setViewName() 和 addObject(),前者表示方法对应的前端页面,也就是我们模板中对应文件名的 .html 文件,而后者则主要给属性注入值,然后将属性传递到前端模板。

package com.cunyu.controller;

import com.cunyu.pojo.User;
import org.springframework.stereotype.Controller;
import org.springframework.WEB.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;



@Controller
public class UserController {

    // 访问 ip:port/index
    @GetMapping("/index")
    public ModelAndView index() {
        ModelAndView modelAndView = new ModelAndView();
        // 设置跳转的视图,即位于 templates/index.html
        modelAndView.setViewName("index");
        modelAndView.addObject("title", "Thymeleaf 使用");
        modelAndView.addObject("desc", "Spring Boot 整合 Thymeleaf");
        User author = new User(25);
        modelAndView.addObject("author", author);
        return modelAndView;
    }
}

创建Thymeleaf 模板

第上面的代码中,我们设置了跳转的视图为 index,所以我们需要在 src/main/resources/templates 中创建 index.html。

<!DOCTYPE html>
<html xmlns="Http://www.w3.org/1999/xhtml"
      xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <!-- 即 Controller 中的 title 属性 -->
    <title th:text="${title}"></title>

</head>
<body>
<!-- 即 Controller 中的 desc 属性 -->
<h1 th:text="${desc}" th:align="center"></h1>

<!-- 即 Controller 中的 author 信息 -->
<h2 th:align="center">=====作者信息=====</h2>
<p th:text="${author?.name}"></p>
<p th:text="${author?.age}"></p>
<p th:text="${author?.email}"></p>
</body>
</html>

三、测试

启动项目,然后在浏览器中访问 http://localhost:8080/index,如果出现下图中的信息,说明整合成功。

注意事项:

为了方便使用,我们在使用 Thymeleaf 模板时,可以添加一些自己的配置。而添加的位置则是项目的配置文件 application.yml,项目默认配置文件应该是 application.properties,但 SpringBoot 更加推荐使用 yml 来配置,所以我们这里需要手动将其改为 yml 的格式。

spring:
  thymeleaf:
    cache: false
    prefix: classpath:/templates/
    suffix: .html
    mode: HTML
    encoding: UTF-8
    servlet:
      content-type: text/html

总结:

本文主要介绍了 Themeleaf 的相关简介,然后对利用 SpringBoot 整合 Thymeleaf 的过程进行了描述,最后则是使用 Thymeleaf 中常用的一些相关配置的注意事项。

到此这篇关于Spring Boot 整合 Thymeleaf 详情的文章就介绍到这了,更多相关Spring Boot 整合 Thymeleaf 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Spring Boot 整合 Thymeleaf 实例分享

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Spring Boot 整合 Thymeleaf 实例分享
    目录一、什么是 Thymeleaf二、整合过程准备过程添加 Thymeleaf 依赖编写实体类和 Controller创建Thymeleaf 模板三、测试一、什么是 Thymelea...
    99+
    2022-11-13
  • Spring Boot 整合 FreeMarker 实例分享
    目录一、前言二、FreeMarker 简介三、准备工作环境准备添加 FreeMarker 依赖添加 FreeMarker 相关配置四、编写实体类和 Controller编写实体类编写...
    99+
    2022-11-13
  • spring boot整合JMS的示例分析
    这篇文章将为大家详细讲解有关spring boot整合JMS的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、安装ActiveMQ具体的安装步骤,请参考我的另一篇文章:https://www.j...
    99+
    2023-05-30
    spring boot jms
  • Spring Boot 整合 Reactor实例详解
    目录引言1 创建项目2 集成 H2 数据库3 创建测试类3.1 user 实体3.2 UserRepository3.3 UserService3.4 UserController3...
    99+
    2022-11-13
  • Spring Boot整合mybatis(一)实例代码
    sprig-boot是一个微服务架构,加快了spring工程快速开发,以及简便了配置。接下来开始spring-boot与mybatis的整合。创建一个maven工程命名为spring-boot-entity,pom.xml文件配置如下:&l...
    99+
    2023-05-31
    spring boot 整合
  • Spring整合Mybatis实操分享
    目录Mybatis的基本工作原理分析需要解决的问题Spring中Bean的产生过程解决问题总结在介绍Spring整合Mybatis原理之前,我们得先来稍微介绍Mybatis的工作原理...
    99+
    2022-11-13
  • spring boot整合hessian的示例
    首先添加hessian依赖<dependency> <groupId>com.caucho</groupId> <artifactId>hessian</artifac...
    99+
    2023-05-31
    spring boot hessian
  • Spring Boot整合邮箱发送邮件实例
    目录1.准备工作2.代码整合总结1. 准备工作 登录进自己的 qq 邮箱获取授权码 设置 – 账户 – POP3/IMAP/SMTP/Exchange/Car...
    99+
    2022-11-13
  • Spring Boot 整合 Fisco Bcos的案例分析(区块链)
    目录简介本地环境主要流程:1、Fisco Bcos环境搭建与验证1.1、搭建单群组4节点联盟链:1.2、检查证书1.3、使用证书验证节点正确性2、创建SpringBoot工程并配置依...
    99+
    2022-11-12
  • Spring Boot结合P6Spy的实例分析
    这篇文章给大家介绍Spring Boot结合P6Spy的实例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一:pom.xml 中添加依赖<dependency><groupId>p6spy&...
    99+
    2023-06-05
  • Spring Boot 整合 Apache Dubbo的示例代码
    Apache Dubbo是一款高性能、轻量级的开源 Java RPC 框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。 注意,是 Ap...
    99+
    2022-11-12
  • Spring boot整合jsp和tiles模板示例
    首先贴上我的pox.xml文件,有详细的支持注释说明 <strong><xml version="1.0" encoding="UTF-8"> <pro...
    99+
    2022-11-13
  • Spring boot 整合Logback过程示例解析
    目录前言默认Logback配置自定义Logback文件layout:encoder:rollingPolicy:多环境日志输出总结前言 我们通常使用Spring boot做项目搭建...
    99+
    2023-02-13
    Spring boot整合Logback Springboot Logback
  • Spring boot 整合CXF开发web service示例
    前言说起web service最近几年restful大行其道,大有取代传统soap web service的趋势,但是一些特有或相对老旧的系统依然使用了传统的soap web service,例如银行、航空公司的机票查询接口等。目前就遇到了...
    99+
    2023-05-31
    spring boot cxf
  • Spring Boot 功能整合的实现
    目录前言数据库持久化支持Swagger 文档支持参数校验 JSR303跨域解决整合MongoDB实现文件上传下载删除前言 如果根据之前做的 Nest.js 后端项目功能为标准的话,...
    99+
    2022-11-12
  • Spring Boot中整合Spring Security并自定义验证代码实例
    最终效果实现页面访问权限限制 2、用户角色区分,并按照角色区分页面权限 3、实现在数据库中存储用户信息以及角色信息 4、自定义验证代码效果如下: 免验证页面  登陆页面 在用户未登录时,访问任意有权限要求的页面都会自动跳转到登陆页...
    99+
    2023-05-31
    spring security spring boo
  • Spring Boot整合JWT的实现步骤
    springboot整合jwt步骤: 1、登录时,验证账号和密码成功后,生成jwt,返回给前端; 2、前端接收后保存,再做其他操作,比如增删改查时,同时将jwt传给后端进行验证,如果...
    99+
    2022-11-12
  • spring boot如何实现对RabbitMQ整合
    本篇文章为大家展示了spring boot如何实现对RabbitMQ整合,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.Fanout Exchange介绍Fanout Exchange 消息广播的...
    99+
    2023-05-31
    springboot rabbitmq bit
  • Spring Boot整合Zookeeper实现分布式锁的场景分析
    目录一、Java当中关于锁的概念1.1.什么是锁1.2.锁的使用场景1.3.什么是分布式锁1.4.分布式锁的使用场景二、zk实现分布式锁2.1.zk中锁的种类:2.2.zk如何上读锁...
    99+
    2022-11-13
  • 使用spring-boot如何实现整合dubbo中的Spring-boot-dubbo-starter
    使用spring-boot如何实现整合dubbo中的Spring-boot-dubbo-starter?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在application.p...
    99+
    2023-05-31
    springboot art dubbo
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作