SpringBoot 之Thymeleaf模板.

layuimini后台模板+Springboot整合Thymeleaf layuimini后台模板+Springboot整合Thymeleaf 首先下载layuimini模板: 代码仓库(iframe 多tab版) v2版:- 在线预览地址:http://layuimini.99php.cn/iframe/v2/index.html - GitHub仓库地址:https://github.com/zhongshaofa/layuimini/tree/v2 - Gitee仓库地址:https://gitee.com/zhongshaofa/layuimini/tree/. 阅读详情

一、前言

    Thymeleaf 的出现是为了取代 JSP,虽然 JSP 存在了很长时间,并在 Java Web 开发中无处不在,但是它也存在一些缺陷:

1、JSP 最明显的问题在于它看起来像HTML或XML,但它其实上并不是。大多数的JSP模板都是采用HTML的形式,但是又掺杂上了各种JSP标签库的标签,使其变得很混乱。

2、JSP 规范是与 Servlet 规范紧密耦合的。这意味着它只能用在基于 Servlet 的Web应用之中。JSP模板不能作为通用的模板(如格式化Email),也不能用于非Servlet的 Web 应用。

    相较于 JSP 来说,Thymeleaf 很好的解决了这些缺点:

1、Thymeleaf模板是原生的,不依赖于标签库。它能在接受原始 HTML 的地方进行编辑和渲染。

2、因为它没有与Servlet规范耦合,因此 Thymeleaf 模板能够进入JSP所无法涉足的领域。这意味着Thymeleaf模板与JSP不同,它能够按照原始的方式进行编辑甚至渲染,而不必经过任何类型的处理器。当然,我们需要Thymeleaf来处理模板并渲染得到最终期望的输出。即便如此,如果没有任何特殊的处理,home.html也能够加载到Web浏览器中,并且看上去与完整渲染的效果很类似。

    Spring boot不建议使用 JSP 开发web。

回到顶部

二、集成 Thymeleaf 模板引擎

    SpringBoot 对 Thymeleaf 模板引擎的支持也很简单:

    1、pom.xml

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

这时候,SpringBoot 对 Thymeleaf 模板的支持就完成了,我们就能在 Web 开发中使用 Thymeleaf 模板了,简单吧?

之前的文章有提到 SpringBoot 的关键是 “约定俗成”。既然我们选择了这么简单的配置,那么在开发中就要遵守 SpringBoot 对 Thymeleaf 约定俗成的方案,最重要的一点就是 模板文件放在 templates 目录下,即模板解析器前缀是 /templates/ ,后缀是 .html 。

    2、application.yml

    如果不想要所谓约定俗成的方案,想进行一些自定义的配置呢?且看下方:

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


    3、WebConfig.java

    如果上面的配置还不能达到你的要求,你想要更细化对 Thymeleaf 的控制,包括配置视图解析器、模板解析器以及模板引擎这些,那么请看下面的方案!


/**
 * 1、ThymeleafViewResolver 接收逻辑视图名称将它解析为视图
 * 2、SpringTemplateEngine会在Spring中启用Thymeleaf引擎,用来解析模板,并基于这些模板渲染结果
 * 3、TemplateResolver会最终定位和查找模板。 */@Configurationpublic class WebConfig {    
    /**
     * 配置 Thymeleaf 视图解析器 —— 将逻辑视图名称解析为 Thymeleaf 模板视图
     *
     * @param springTemplateEngine 模板引擎
     * @return
     */
    @Bean    public ViewResolver viewResolver(SpringTemplateEngine springTemplateEngine){
        ThymeleafViewResolver resolver = new ThymeleafViewResolver();
        resolver.setTemplateEngine(springTemplateEngine);        return resolver;
    }    /**
     * 模板引擎 —— 处理模板并渲染结果
     *
     * @param templateResolver 模板解析器
     * @return
     */
    @Bean    public SpringTemplateEngine springTemplateEngine(ITemplateResolver templateResolver) {
        SpringTemplateEngine springTemplateEngine = new SpringTemplateEngine();
        springTemplateEngine.setTemplateResolver(templateResolver);        return springTemplateEngine;
    }    /**
     * 模板解析器 —— 加载 Thymeleaf 模板
     *
     * @return
     */
    @Bean    public ITemplateResolver templateResolver() {
        SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
        templateResolver.setPrefix("classpath:/templates/");
        templateResolver.setSuffix(".html");
        templateResolver.setTemplateMode(TemplateMode.HTML);
        templateResolver.setCacheable(false);
        templateResolver.setTemplateMode("HTML5");        return templateResolver;
    }
}


回到顶部

三、使用 Thymeleaf 模板

    做好了上面的配置后,让我们来看看如何在 SpringBoot 中使用 Thymeleaf 模板吧:

    1、模板文件 — /templates/user/list.html


<!DOCTYPE html><html xmlns:th="http://www.thymeleaf.org"><head>
    <meta charset="UTF-8" />
    <title>Insert title here</title></head><body><h2>用户列表</h2><div>
    <ul>
        <li  th:each="user:${users}">
            <span th:text="${user.uuid}"></span>-            <span th:text="${user.name}"></span>-            <span th:text="${user.age}"></span>-            <span th:text="${user.address}"></span>
        </li>
    </ul></div></body></html>


    2、控制层 — ModelAndViews

    这里 Model 指的是:控制层处理完请求,返回需要渲染的结果;Views 指的是:模板的逻辑视图名(前后端分离)。


@Controller
@RequestMapping("/user")public class UserController {

    @RequestMapping("/list")    public String listUser(Model model) {
        List<UserDto> userList = new ArrayList<>();        for (int i = 0; i < 10; i++) {
            userList.add(new UserDto(UUID.randomUUID().toString().replace("-", ""), "张三" + i, 1, "中国北京"));
        }
        model.addAttribute("users", userList);        return "user/list";
    }
}


    3、效果

 

演示源代码:https://github.com/JMCuixy/Thymeleaf


【SpringBoot】3、SpringBoot中整合Thymeleaf模板引擎 SpringBoot 为我们提供了 Thymeleaf 自动化配置解决方案,所以我们在 SpringBoot 中使用 Thymeleaf 非常方便 一、简介 Thymeleaf是一个流行的模板引擎,该模板引擎采用Java语言开发,模板引擎是一个技术名词,是跨领域跨平台的概念,在Java语言体系下有模板引擎,在C#、PHP语言体系下也有模板引擎。除了thymeleaf之外还有Velocity、Fr... 阅读详情

相关推荐

springboot项目实战-使用thymeleaf模板引擎

Spring Boot对Web开发流程提供完整的支持,包括从前端到后台的开发,再到数据库的操作。使用Spring Boot开发Web工程有两种类型:前后端完全分离。这种方式是前端开发者和后端开发者完全分离地进行项目的开发,最后完成前后端的接口对接,这是目前国内一种流行的开发方式。前端负责页面的开发并调用后端接口展示数据,后端只负责提供API接口。使用Spring Boot自带的模板。这种方式适用于小型项目或者全栈开发人员,一般可以选择的模板包括Freemaker和Thymeleaf等。

虾米大王的学习历程 1078

Thymeleaf模板

目录Thymeleaf介绍Thymeleaf常用设置Thymeleaf使用 Thymeleaf介绍 Thymeleaf是比jsp功能更加强大,效率更快的模板 SpringBoot集成了Thymeleaf模板 Thymeleaf模板是基于HTML的,以HTML标签为载体 Thymeleaf官网:Thymeleaf Thymeleaf手册:Thymeleaf Thymeleaf常用设置 在SpringBoot的application配置文件中 在Controller层写路径时可以省略前后缀 #模板引擎的

Lotz 3768

springboot整合thymeleaf模板

因为在 application.properties配置文件中已经配置了thymeleaf文件路径前缀,所以只需返回/templates/下文件路径即可。在springboot 总配置文application.properties件中 配置。相当于KEY与页面中的 th:text="${name}" 对应;新建thymeleaf的controller。前端页面渲染引擎需要的Controller。姓名:" + u.getName());年龄:" + u.getAge());在POM配置文件中,

不生产代码的码农 527

thymeleaf配置经验总结

1. 关闭html模式标签解析严格模式     这个官方称呼可能不是这个,就是默认配置下,thymeleaf对.html的内容要求很严格,比如&lt;meta charset="UTF-8" /&gt;,如果少最后的标签封闭符号/,就会报错而转到错误页。也比如你在使用Vue.js这样的库,然后有&lt;div v-cloak&gt;&lt;/div&gt;这样的html代码,也会被thymele...

小白要进步 1973

数据结构实验1 集合的交、并、差

姓名:Far_Rainbow 学号: 202505000X 专业: 软件工程 年级:2020级 实验名称:实验1 集合的交、并、差 实验内容: (1)实验目的 通过该实验,让学生复习巩固C语言中的循环结构、循环控制条件、分支结构和数组/链表、函数的调用等有关内容,体会到用数组存储集合时,需要记录集合元素的个数,否则输出结果会出现数据越界现象。 (2)实验内容 通过键盘,分别输入两个数据元素类型为正整数的集合A和B,以负数输入为结束条件,输出两个集合的交、并、差。 (3)实验要求 从程序完善性上考虑,集合元

Far_Rainbow的博客 2177

stm32学习笔记-启动文件

1、配置栈 Stack_Size EQU 0x00000400 AREA STACK, NOINIT, READWRITE, ALIGN=3 Stack_Mem SPACE Stack_Size __initial_sp EQU:相当于C中的define,定义Stack_Size = 0x00000400。 AREA: 指...

某风吾起的博客 4529

Themleaf模板基础语法使用介绍

Themleaf模板基础语法使用介绍 一、 Thymeleaf 是什么 Thymeleaf是一个模板引擎,主要用于编写动态页面。 Thymeleaf是SpringBoot官方所推荐使用的。 二、Thymeleaf的作用 问题:动态页面技术已经有JSP,为什么还要用Thymeleaf? 主要原因包括以下几点: 使用模块引擎来编写动态页面,让开发人员无法在页面上编写 Java 代码,使得java代码和前端代码绝对的分离。 SpringBoot默认整合Thymeleaf,不需要任何配置直接整合成功,打jar包发

清峰的博客 1万+

一个测试工程师走进一家酒吧……

一个测试工程师走进一家酒吧,要了一杯啤酒;一个测试工程师走进一家酒吧,要了一杯咖啡;一个测试工程师走进一家酒吧,要了 0.7 杯啤酒;一个测试工程师走进一家酒吧,要了-1 杯啤酒;一个测试...

字节跳动技术团队官方博客 4887

SpringBoot 之Thymeleaf模板

对于面试,一定要有良好的心态,这位小伙伴面试美团的时候没有被前面阿里的面试影响到,发挥也很正常,也就能顺利拿下美团的offer。小编还整理了大厂java程序员面试涉及到的绝大部分面试题及答案,希望能帮助到大家,也祝愿大家都能够升职加薪!《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!图片转存中…(img-UMKV9VwL-1712680280469)]也祝愿大家都能够升职加薪!

2401_84046545的博客 1234

ESP32-P4实战:LVGL V9.4 PPA加速配置与性能对比

本文详细介绍了如何在ESP32-P4平台上配置LVGL V9.4的PPA硬件加速功能,通过启用PPA加速显著提升图形处理性能并降低CPU占用率。文章包含环境准备、配置步骤、性能对比及常见问题解决方案,帮助开发者高效利用ESP32-P4的PPA加速器优化嵌入式GUI应用。

rice5的博客 1190

谷歌倾斜摄影数据获取以及转换3DTiles介绍

解析谷歌倾斜模型数据,再一键设置无人值守的情况下,快速将谷歌倾斜摄影模型数据转成3DTiles数据,并在Cesium上进行流畅漫游缩放显示,效果优于官方3DTiiles格式数据

cyber_room的博客 5337

SpringBoot系列——Thymeleaf模板

  前言   thymeleaf是springboot官方推荐使用的java模板引擎,在springboot的参考指南里的第28.1.10Template Engines中介绍并推荐使用thymeleaf,建议我们应该避免使用jsp,jsp的本质是一个java的servlet类,jsp引擎将jsp的内容编译成.class,"out.write"输出到response再响应到浏览器,虽然java是一次编译,到处运行,但也大大增加了服务器压力,而且jsp将后台java语言嵌入页面,还要放入服务容器才能打...

ITSM/ITIL/网络安全/IT运维 4740

16、保障Azure应用安全:密钥管理与身份认证

本文深入探讨了保障Azure应用安全的关键措施,包括使用网络安全工具(如Application Gateway和Azure Front Door)防范攻击,解决传统密钥和机密存储方式的安全隐患,以及通过Azure Key Vault实现敏感信息的安全管理。同时,介绍了使用托管标识实现Azure资源间安全访问的方法,并结合实际操作步骤展示了如何配置Key Vault、设置访问策略、存储机密以及授予Web应用对SQL Server的访问权限。最后,对不同安全措施进行了比较,并提出了在开发、测试及生产环境中的综合

rock5的博客 72

SpringBoot2-[模板引擎-Thymeleaf]

👨🏻‍🎓博主介绍:大家好,我是芝士味的椒盐,一名在校大学生,热爱分享知识,很高兴在这里认识大家🌟 🌈擅长领域:Java、大数据、运维、电子 🙏🏻如果本文章各位小伙伴们有帮助的话,🍭关注+👍🏻点赞+🗣评论+📦收藏,相应的有空了我也会回访,互助!!! 🤝另本人水平有限,旨在创作简单易懂的文章,在文章描述时如有错,恳请各位大佬指正,在此感谢!!! 文章目录模板引擎-Thymeleaf1、**表达式****2、字面量****3、文本操作****4、数学运算****5、布尔运算****6、比较运算****7、..

芝士味椒盐的博客 5739

Universal Robot——在Gazebo中模拟UR5机器人

今天的目标是在Gazebo安装我们的ur5机器人。Gazebo是一个流行的模拟工具,它不仅可以让你像在Rviz中一样可视化你的机器人,而且还内置了一个物理引擎。这样你就可以在更真实的环境中测试你的机器人应用程序。我们将查看我们需要的属性 添加对我们的机器人——我们的order的描述,以模拟它以及如何在Gazebo中生成我们的机器人。

如果想成为中心,那么就到中心去吧。 1969

1.14、基于NARX神经网络的磁悬浮建模(matlab)

数据准备:首先,需要准备用于训练和测试的磁悬浮系统的输入和输出数据,包括磁力、电流、位置、速度等信息。数据可以被保存在MATLAB的数据文件中,并加载到工作空间中。使用MATLAB的神经网络工具箱,创建一个NARX神经网络。需要定义网络的层次结构、节点数、激活函数等参数。通常,NARX网络包括自回归层和外部输入层。数据预处理:对加载的数据进行预处理,包括去除噪声、归一化处理等操作,以确保数据质量和网络训练的稳定性。使用MATLAB的训练函数,如trainlm或者trainbr,对NARX神经网络进行训练。

XU157303764的博客 1998

【SpringBoot】| Thymeleaf 模板引擎

【SpringBoot】| Thymeleaf 模板引擎

m0_61933976的博客 6852

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

SpringBoot 整合【Thymeleaf模板引擎】

前言。

m0_63300795的博客 581

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

【Springboot】SpringBoot基础知识及整合Thymeleaf模板引擎

①Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。一、

未来可以改变 2114

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

SpringBoot中thymeleaf模板引擎

SpringBoot中的thymeleaf模板引擎 thymeleaf语法简介 thymeleaf模板与页面交互案例

PIKapikaaaa的博客 1058

SpringBoot之Thymeleaf模板使用

SpringBoot之Thymeleaf模板使用 介绍 开发传统Java WEB工程时,我们可以使用JSP页面模板语言,但是在SpringBoot中已经不推荐使用了。SpringBoot支持如下页面模板语言 Thymeleaf FreeMarker Velocity Groovy JSP 上面并没有列举所有SpringBoot支持的页面模板技术。其中Thymeleaf是SpringBoot官方所推荐使用的,下面来谈谈Thymeleaf一些常用的语法规则。 Thymeleaf默认的页面文件后缀是.html 为

weixin_45203607的博客 3954

Java实战:Spring Boot中集成Thymeleaf模板引擎

本文将详细介绍如何在Spring Boot应用程序中集成Thymeleaf模板引擎

oandy0的博客 2145

SpringBoot配置thymeleaf模板

springBoot默认支持的html模板是thymeleaf模板,既然官方都默认支持了,那么我也就简单学习了一下,在这里记录一下: ##首先我们引入spring对thymeleaf模板的支持 1.在application.properties文件中增加Thymeleaf模板的配置。 #thymelea模板配置 spring.thymeleaf.prefix=classpath:/template...

qq_35530330的博客 378

SpringBoot系列:Spring Boot使用模板引擎Thymeleaf

一、Java模板引擎 模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档。 在java中,主要的模板引擎有JSP、Thymeleaf、FreeMarker、Velocity等。 虽然随着前后端分离的崛起和流行,模板引擎已遭受到冷落,但不少旧项目依然使用java的模板引擎渲染界面,而偶...

Simple_Yangger的博客 877
上一篇: 架构师杂谈JVM之JIT
下一篇: 从源码分析如何优雅的使用 Kafka 生产者
大G哥
博客等级 码龄9年 5303粉丝 1408原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值