Thymeleaf菜鸟教程详解

随着Java Web应用程序的普及,前端开发越来越重要。Thymeleaf是一种前端模板引擎,可以将数据与 HTML 的表现层进行绑定,同时保持代码的优雅和清晰。

一、优点

1、模板自然(Natural Template)

Thymeleaf 模板引擎通过自然模板实现数据绑定,可以避免JSP中各种Java代码的情况,写起来更加舒适自然,更易读更易维护。

 <html>
     <body>
         <h1 th:text="${title}">页面标题</h1>
         <p th:text="${content}">内容区域内容区域内容区域</p>
     </body>
 </html>

2、支持HTML5标准

Thymeleaf 在设计时考虑了 HTML 的语法规则,所以在开发过程中,使用 Thymeleaf 不用担心 XHTL 的语法问题。

3、开箱即用

使用 Spring Boot 框架和 Thymeleaf 模板,可以轻松快速地启动项目,您会发现您无需花费大量时间和精力进行项目的构建。

二、常用方法

1、文本输出

 <span th:text="${name}">[name]</span>
 <p>[[${name}]]</p>

2、判断语句

 <span th:if="${name != null}">[[${name}]]</span>
 <span th:unless="${name == null}">[[${name}]]</span>
 <ul>
     <li th:each="product : ${products}">
         <p th:text="${product.name}">商品名称</p>
         <p th:text="${product.price}">商品价格</p>
     </li>
 </ul>

3、链接处理和表单处理

 <a th:href="@{/home}">home</a>
 <form th:action="@{/login}" method="post">
     <input type="text" name="username" id="username" />
     <input type="password" name="password" id="password" />
     <input type="submit" value="Submit" />
 </form>

三、Thymeleaf模板

Thymeleaf 模板引擎通过自然模板实现数据绑定,下面是一个简单的模板。

 <!DOCTYPE html>
 <html xmlns:th="http://www.thymeleaf.org">
     <head>
         <meta charset="UTF-8" />
         <title th:text="${title}">页面标题</title>
     </head>
     <body>
         <div th:replace="fragments/header :: header" />
         <div th:replace="fragments/footer :: footer" />
     </body>
 </html>

在代码中使用

 <div th:insert="fragments/header :: header"></div>
 <div th:replace="fragments/footer :: footer"></div>

四、SpringMVC + Thymeleaf框架项目

1、配置Thymeleaf模板引擎,并设置视图解析器

 @Autowired
 private WebApplicationContext webApplicationContext;

 @Bean
 public ITemplateResolver templateResolver() {
     SpringResourceTemplateResolver resolver = new SpringResourceTemplateResolver();
     resolver.setApplicationContext(webApplicationContext);
     resolver.setCharacterEncoding("UTF-8");
     resolver.setTemplateMode(TemplateMode.HTML);
     resolver.setCacheable(false);
     return resolver;
 }

 @Bean
 public SpringTemplateEngine templateEngine() {
     SpringTemplateEngine engine = new SpringTemplateEngine();
     engine.setTemplateResolver(templateResolver());
     return engine;
 }

 @Bean
 public ViewResolver viewResolver() {
     ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
     viewResolver.setTemplateEngine(templateEngine());
     viewResolver.setCharacterEncoding("UTF-8");
     viewResolver.setOrder(0);
     viewResolver.setViewNames(new String[] {"*"});
     viewResolver.setCache(false);
     viewResolver.setRedirectContextRelative(false);
     return viewResolver;
 }

2、实体类与控制器

 public class User {
     private Integer id;
     private String name;
     private String password;       
     // getter setter
 }

@Controller
public class UserController {
    @RequestMapping("/user")
    public ModelAndView getUser(){
        ModelAndView modelAndView = new ModelAndView();
        List users = new ArrayList();
        modelAndView.addObject("userList",users);
        modelAndView.setViewName("user");
        return modelAndView;
    }
}

3、模板

 <!DOCTYPE html>
 <html xmlns:th="http://www.thymeleaf.org">
     <head>
         <title>Spring MVC + Thymeleaf</title>
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
     </head>
     <body>
         <!--表格-->
         <table>
             <tr th:each="user : ${userList}">
                 <td th:text="${user.id}">id</td>
                 <td th:text="${user.name}">name</td>
                 <td th:text="${user.password}">password</td>
             </tr>
         </table>
     </body>
 </html>

五、总结

本篇文章讲解了Thymeleaf的基本使用方式、优点、常用方法以及实战操作,在开发中可以根据实际需求加深对Thymeleaf的使用。Thymeleaf让前端和后端工作能够更加协调,提高了前后端协同开发的效率。

原创文章,作者:QBBEQ,如若转载,请注明出处:https://www.506064.com/n/331940.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
QBBEQQBBEQ
上一篇 2025-01-20 14:10
下一篇 2025-01-20 14:10

相关推荐

  • MQTT使用教程

    MQTT是一种轻量级的消息传输协议,适用于物联网领域中的设备与云端、设备与设备之间的数据传输。本文将介绍使用MQTT实现设备与云端数据传输的方法和注意事项。 一、准备工作 在使用M…

    编程 2025-04-29
  • Python3.6.5下载安装教程

    Python是一种面向对象、解释型计算机程序语言。它是一门动态语言,因为它不会对程序员提前声明变量类型,而是在变量第一次赋值时自动识别该变量的类型。 Python3.6.5是Pyt…

    编程 2025-04-29
  • Deepin系统分区设置教程

    本教程将会详细介绍Deepin系统如何进行分区设置,分享多种方式让您了解如何规划您的硬盘。 一、分区的基本知识 在进行Deepin系统分区设置之前,我们需要了解一些基本分区概念。 …

    编程 2025-04-29
  • 写代码新手教程

    本文将从语言选择、学习方法、编码规范以及常见问题解答等多个方面,为编程新手提供实用、简明的教程。 一、语言选择 作为编程新手,选择一门编程语言是很关键的一步。以下是几个有代表性的编…

    编程 2025-04-29
  • Qt雷达探测教程

    本文主要介绍如何使用Qt开发雷达探测程序,并展示一个简单的雷达探测示例。 一、环境准备 在开始本教程之前,需要确保你的开发环境已经安装Qt和Qt Creator。如果没有安装,可以…

    编程 2025-04-29
  • 猿编程python免费全套教程400集

    想要学习Python编程吗?猿编程python免费全套教程400集是一个不错的选择!下面我们来详细了解一下这个教程。 一、课程内容 猿编程python免费全套教程400集包含了从P…

    编程 2025-04-29
  • Python烟花教程

    Python烟花代码在近年来越来越受到人们的欢迎,因为它可以让我们在终端里玩烟花,不仅具有视觉美感,还可以通过代码实现动画和音效。本教程将详细介绍Python烟花代码的实现原理和模…

    编程 2025-04-29
  • 使用Snare服务收集日志:完整教程

    本教程将介绍如何使用Snare服务收集Windows服务器上的日志,并将其发送到远程服务器进行集中管理。 一、安装和配置Snare 1、下载Snare安装程序并安装。 https:…

    编程 2025-04-29
  • Python画K线教程

    本教程将从以下几个方面详细介绍Python画K线的方法及技巧,包括数据处理、图表绘制、基本设置等等。 一、数据处理 1、获取数据 在Python中可以使用Pandas库获取K线数据…

    编程 2025-04-28
  • Python语言程序设计教程PDF赵璐百度网盘介绍

    Python语言程序设计教程PDF赵璐百度网盘是一本介绍Python语言编程的入门教材,本文将从以下几个方面对其进行详细阐述。 一、Python语言的特点 Python语言属于解释…

    编程 2025-04-28

发表回复

登录后才能评论