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 -jar修改SpringBoot中application.properties的配置项

    在讲解前我先简单介绍一下 java -jar 命令和SpringBoot中的 application.properties 文件。 java -jar 命令是使用Java虚拟机(JVM)运行jar包中的程序的命令,可以用于运行普通Java应用程序和Spring Boot应用程序。application.properties 是Spring Boot应用程序用…

    Java 2023年5月19日
    00
  • JSP教程(一)

    下面是“JSP教程(一)”的完整攻略。 标题 在文档开头加入标题,以便读者能够了解该文档的内容。 # JSP教程(一) 简介 在简短的几句话中介绍文档的内容和目标用户。 本文档将介绍什么是JSP,以及JSP的结构和基本语法。本文适合那些对Java Web开发有基本了解的读者阅读。 什么是JSP? JSP(Java Server Pages)是一种Java技术…

    Java 2023年6月15日
    00
  • Tomcat配置https SSL证书的项目实践

    下面我将详细讲解关于Tomcat配置https SSL证书的完整攻略,包含整个步骤和相关代码示例。 准备工作 通过证书颁发机构获取SSL证书,得到包含证书内容和私钥内容的文件,通常为.pfx、.p12或.pem格式。 将证书导出为JKS格式,JKS格式是Java KeyStore的缩写,它是Java系统中常用的密钥库格式。 keytool -importke…

    Java 2023年5月19日
    00
  • Java Web实现session过期后自动跳转到登陆页功能【基于过滤器】

    下面是Java Web实现session过期后自动跳转到登陆页功能【基于过滤器】的完整攻略。 1. 什么是过滤器 在开始讲解如何实现session过期后自动跳转到登陆页功能之前,先需要明确什么是过滤器。过滤器是用来拦截请求、响应以及过滤其它需要过滤的内容的一个组件。在Java Web中,我们可以使用Filter接口来实现过滤器。 2. Servlet Fil…

    Java 2023年6月15日
    00
  • Java中Lambda表达式基础及使用

    Java中Lambda表达式基础及使用攻略 什么是Lambda表达式? Lambda表达式是一个新的功能,它是Java 8版本新推出的,用于代替Java的传统匿名类,使代码更加简洁和易于阅读。Lambda表达式是一种匿名函数,可以传递给一个方法或存储在一个变量中,使用时就像调用一个方法一样。 Lambda表达式的语法 Lambda表达式是由参数列表、箭头符号…

    Java 2023年5月26日
    00
  • java面向对象基础_final详细介绍

    Java面向对象基础_final详细介绍 本文将从以下方面详细讲解Java面向对象基础_final的相关知识,包括什么是面向对象、封装、继承、多态等基础知识,以及如何应用它们来编写高质量的Java程序。 什么是面向对象 面向对象(Object Oriented)是一种软件开发方法,它将现实世界的事物抽象成一些对象,并通过封装、继承、多态等机制来使得这些对象之…

    Java 2023年5月26日
    00
  • Java各种排序算法汇总(冒泡,选择,归并,希尔及堆排序等)

    Java各种排序算法汇总 本文将详细讲解Java中常见的各种排序算法,包括冒泡排序、选择排序、归并排序、希尔排序、堆排序等,以及他们的实现代码和时间复杂度分析。 冒泡排序 冒泡排序是一种基础的排序算法,核心思想是将相邻的元素两两比较,将较大的元素向后移动。代码如下: public static void bubbleSort(int[] array) { f…

    Java 2023年5月19日
    00
  • 简单总结Java IO中stream流的使用方法

    下面是“简单总结Java IO中stream流的使用方法”的完整攻略: 1. Java IO中的Stream流 Java IO(Input/Output)是指Java语言中的输入输出流操作,用于读取和写入数据。在Java IO中,输入输出是用Stream(流)的方式进行的。Stream流提供了InputSteam和OutputStream两个抽象类,它们是所…

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