Java基础之Thymeleaf的简单使用

下面是“Java基础之Thymeleaf的简单使用”的完整攻略。

1. 什么是Thymeleaf

Thymeleaf是一种服务器端Java模板引擎,它能够处理HTML、XML、JavaScript、CSS、文本等模板。与其他模板引擎相比,Thymeleaf有以下特点:

  • 语法简单且易于学习;
  • 支持自然模板:模板可以在浏览器中预览,而不需要部署到客户端;
  • 支持表达式、片段、逻辑、迭代等功能,使模板的编写更加灵活。

2. 基本使用

2.1 添加依赖

在使用Thymeleaf之前,需要在项目中添加Thymeleaf的依赖。如果使用Maven管理项目,可以在pom.xml文件中添加以下依赖:

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

如果不使用Spring Boot,则需要添加以下依赖:

<dependency>
   <groupId>org.thymeleaf</groupId>
   <artifactId>thymeleaf</artifactId>
   <version>3.0.11.RELEASE</version>
</dependency>

2.2 创建模板文件

Thymeleaf的模板文件遵循HTML5规范。在模板文件中可以添加Thymeleaf语法,实现对模板的动态处理。

例如,我们可以创建一个简单的HTML模板文件index.html,并在其中添加Thymeleaf的语法:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Thymeleaf Example</title>
</head>
<body>
    <h1 th:text="${title}">Hello World</h1>
</body>
</html>

这个模板文件中,我们使用了Thymeleaf的语法${title},表示在模板渲染时,从上下文中读取名为title的变量并替换到该位置。

2.3 创建控制器

在创建模板文件后,需要创建控制器来处理请求,并将数据传递给模板进行渲染。

例如,我们可以创建一个简单的控制器ThymeleafController.java,并在其中添加以下代码:

package com.example.demo;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class ThymeleafController {

  @RequestMapping(value = "/", method = RequestMethod.GET)
  public String index(ModelMap model) {
    model.addAttribute("title", "Thymeleaf Example");
    return "index";
  }

}

在该控制器中,我们使用了注解@Controller来告诉Spring该类是一个控制器,使用注解@RequestMapping来指定请求映射路径。在index方法中,我们使用了ModelMap对象来设置模板渲染时所需的变量title的值,然后返回字符串"index",表示使用名为index.html的模板文件进行渲染。

2.4 启动应用程序

将应用程序打包成可执行jar包,并使用以下命令启动应用程序:

java -jar demo.jar

在应用程序启动成功后,访问URLhttp://localhost:8080,应该可以看到浏览器中显示出"Thymeleaf Example"的文本。

3. Thymeleaf语法示例

3.1 变量表达式

变量表达式${}表示从上下文中读取一个变量的值。

例如,如果我们在模板文件中添加以下代码:

<p th:text="${message}">Hello World</p>

并在控制器中添加以下代码:

model.addAttribute("message", "Hello Thymeleaf!");

则在渲染模板时,变量${message}会被替换为"Hello Thymeleaf!"。最终渲染出的HTML代码为:

<p>Hello Thymeleaf!</p>

3.2 循环遍历

Thymeleaf支持使用th:each语法来循环遍历集合或数组。

例如,如果我们在模板文件中添加以下代码:

<ul>
  <li th:each="name : ${names}" th:text="${name}">Name</li>
</ul>

并在控制器中添加以下代码:

List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
names.add("Charlie");
model.addAttribute("names", names);

则在渲染模板时,Thymeleaf会循环遍历names集合,并将集合中的每个元素赋值给变量name,然后将每个元素的值渲染为一个<li>元素。最终渲染出的HTML代码为:

<ul>
  <li>Alice</li>
  <li>Bob</li>
  <li>Charlie</li>
</ul>

4. 总结

本文介绍了Thymeleaf的基本使用,并提供了两个Thymeleaf语法的示例。在实际开发中,Thymeleaf还有很多其他的语法和功能,需要根据具体场景进行使用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java基础之Thymeleaf的简单使用 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • java实现向有序数组中插入一个元素实例

    当需要向有序数组中插入一个新的元素时,我们可以使用以下步骤: 步骤 1:创建有序数组 首先,我们需要创建一个已经排好序的数组。可以使用Java中的数组来完成,或者也可以使用List等其他数据结构。 步骤 2:确定插入位置 在插入新元素之前,我们需要确定新元素应该插入的位置。由于数组已经排好序,我们可以使用二分查找来找到插入位置,使用Java提供的Arrays…

    Java 2023年5月26日
    00
  • 判断Session的过期时间 采用JavaScript实时显示剩余多少秒

    判断Session的过期时间,一般可以采用服务器端的方法或客户端的方法,本文主要介绍采用JavaScript实时显示剩余多少秒的客户端实现方法。 准备工作 在实现过程中,需要获取Session的过期时间和当前时间,所以需要在服务器端将Session的过期时间存入到前端,可以将过期时间存入到一个隐藏域中。 代码示例: <input type="…

    Java 2023年6月15日
    00
  • java实现字符串转String数组的方法示例

    让我来详细讲解一下“java实现字符串转String数组的方法示例”的完整攻略。 背景 在Java开发中,字符串和数组都是常见的数据类型。当我们需要对一个字符串进行拆分、处理时,常常需要将字符串转换为数组,以方便进行操作。那么,如何实现字符串转数组的操作呢? 方法一:使用String类的split方法 Java中的String类提供了split方法,它可以将…

    Java 2023年5月26日
    00
  • Java经典用法总结(二)

    让我们来详细讲解一下《Java经典用法总结(二)》的完整攻略。 简介 本文是《Java经典用法总结》系列的第二篇,主要介绍了Java集合类中常用的几种容器及其使用方法,以及常见的集合操作方式和优化。 Java集合类 Java集合类可以被看作是一种数据结构的封装,用于存储一组相关的数据。Java集合类提供了丰富的操作和算法,可以快速对数据进行处理。 Java集…

    Java 2023年5月20日
    00
  • 什么是线程间通信?

    以下是关于线程间通信的完整使用攻略: 什么是线程间通信? 线程间通信是指多个线程之间通过共享内存或消息传递等方式来实现数据的交换和协调工作的过程。在多线程编程中,线程间通信是非常重要的,可以避免线程之间的竞争和冲突,提高程序的效率和稳定性。 线程间通信的方式 线程间通信主要有以下几种方式: 1. 共享内存 共享内存是指多个线程之间共享同一块内存区域,通过读写…

    Java 2023年5月12日
    00
  • PHP生成随机码的思路与方法实例探索

    PHP生成随机码的思路与方法实例探索 前言 在实际开发中,我们常常需要用到随机码,比如生成验证码、生成邀请码等等。PHP提供了多种方法可以生成随机码,本文将对几种常用的方法进行探究和讲解。 常用随机码生成方法 1. rand函数 rand($min, $max) 函数可以用来生成指定范围内的随机整数。 $code = rand(100000, 999999)…

    Java 2023年5月26日
    00
  • java检查数组是否有重复元素的方法

    当我们需要在 Java 中检测一个数组是否包含重复的元素时,有多种方法可以实现。本文将介绍一些常用的方法,包括暴力破解、利用 Set 和利用 Arrays 类的 sort() 方法等。下面将一一讲解这些方法的步骤。 1、暴力破解 暴力破解的思路非常简单:遍历整个数组,检查每一个元素是否和后面的元素重复。如果发现重复的元素,则返回 true。否则,该数组中就不…

    Java 2023年5月26日
    00
  • Springboot es包版本异常解决方案

    下面是“Springboot es包版本异常解决方案”的完整攻略,包含以下几部分内容: 问题描述 解决方案 示例说明 问题描述 使用 Spring Boot 时,如果要使用 Elasticsearch,一般会使用 Spring Data Elasticsearch(spring-boot-starter-data-elasticsearch),其中包含了 E…

    Java 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部