Spring Boot实战之模板引擎

SpringBoot实战之模板引擎

模板引擎是用于生成动态HTML内容的工具,它将模板文件和数据进行结合,生成最终的HTML文档,常见的模板引擎有Thymeleaf、FreeMarker、Velocity等。在SpringBoot框架中,可以非常方便地集成各种模板引擎,本文将重点介绍如何使用Thymeleaf和FreeMarker模板引擎。

Thymeleaf模板引擎

1. 添加依赖

在项目的pom.xml文件中添加如下依赖:

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

2. 配置Thymeleaf

application.properties文件中添加如下配置:

# 设置Thymeleaf模板引擎为HTML5格式
spring.thymeleaf.mode=HTML5
# 设置Thymeleaf模板文件的前缀和后缀
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html

3. 示例

下面是一个简单的Thymeleaf模板示例:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Thymeleaf Demo</title>
</head>
<body>
    <h1>Hello, <span th:text="${name}"></span>!</h1>
</body>
</html>

在上面的示例中,使用了Thymeleaf的表达式${name}name变量的值动态地渲染到HTML页面上。

4. 控制器

创建一个SpringBoot的控制器类,并添加如下代码:

@Controller
public class ThymeleafController {

    // 显示Thymeleaf模板页面
    @GetMapping("/thymeleaf")
    public String thymeleaf(Model model) {
        model.addAttribute("name", "Thymeleaf");
        return "thymeleaf";
    }

}

在上面的代码中,使用了@Controller注解将类标识为控制器,使用了@GetMapping注解来映射URL,使用了Model对象来向模板中传递数据。

5. 运行程序

运行SpringBoot程序,并访问http://localhost:8080/thymeleaf,即可看到使用Thymeleaf模板引擎渲染出来的页面,页面上显示的内容为“Hello, Thymeleaf!”。

FreeMarker模板引擎

1. 添加依赖

在项目的pom.xml文件中添加如下依赖:

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

2. 配置FreeMarker

application.properties文件中添加如下配置:

# 设置FreeMarker模板文件的前缀和后缀
spring.freemarker.prefix=classpath:/templates/
spring.freemarker.suffix=.ftl

3. 示例

下面是一个简单的FreeMarker模板示例:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>FreeMarker Demo</title>
</head>
<body>
    <h1>Hello, ${name}!</h1>
</body>
</html>

在上面的示例中,使用FreeMarker的表达式${name}name变量的值动态地渲染到HTML页面上。

4. 控制器

创建一个SpringBoot的控制器类,并添加如下代码:

@Controller
public class FreeMarkerController {

    // 显示FreeMarker模板页面
    @GetMapping("/freemarker")
    public String freemarker(Model model) {
        model.addAttribute("name", "FreeMarker");
        return "freemarker";
    }

}

在上面的代码中,使用了@Controller注解将类标识为控制器,使用了@GetMapping注解来映射URL,使用了Model对象来向模板中传递数据。

5. 运行程序

运行SpringBoot程序,并访问http://localhost:8080/freemarker,即可看到使用FreeMarker模板引擎渲染出来的页面,页面上显示的内容为“Hello, FreeMarker!”。

结论

通过使用Thymeleaf和FreeMarker模板引擎,我们可以非常方便地生成动态HTML内容。在实际开发中,可以根据具体的需求选择不同的模板引擎来完成相应的工作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring Boot实战之模板引擎 - Python技术站

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

相关文章

  • Java实现调用外部程序的示例代码

    这里我为你提供一份“Java实现调用外部程序的示例代码”攻略: 1. 确认可供调用的外部程序 在Java代码中调用外部程序之前,首先需要确认可供调用的外部程序是否存在及可用。若存在,则可以直接在Java中通过执行外部程序的命令来进行调用,并获取相应的返回值;若不存在,则需要先进行程序安装或者确认是否已经加入环境变量中。 2. Java代码实现调用外部程序 使…

    Java 2023年5月19日
    00
  • Java SpringBoot自定义starter详解

    当我们使用SpringBoot时,很多时候我们需要在项目中引入许多常用的依赖,这些依赖之间可能会存在依赖关系,我们需要维护它们的版本,非常麻烦。为了解决这个问题,SpringBoot提供了Starter的机制,它可以封装依赖的版本等信息,方便我们统一使用。 在本文中,我将详细介绍Java SpringBoot自定义Starter的过程,让你可以轻松创建自己的…

    Java 2023年5月19日
    00
  • Java数组扩容实现方法解析

    Java 数组扩容实现方法解析 本文将详细介绍 Java 数组扩容的实现方法。数组是 Java 语言中最基本的数据结构之一,而数组的长度在初始化的时候就已经固定,不能动态调整。因此,为了能够动态地向数组中添加元素,我们需要用到数组扩容这一功能。 为什么要扩容 在实际开发中,经常会出现需要动态向数组中添加元素的情况。例如,我们需要一个可以动态增长的数组来保存用…

    Java 2023年5月27日
    00
  • Java基础知识之ByteArrayOutputStream流的使用

    Java基础知识之ByteArrayOutputStream流的使用 ByteArrayOutputStream简介 Java I/O系统提供了许多不同类型的流,其中 ByteArrayOutputStream 是一个内存流,它将数据写入到内存缓冲区中而不是写入到硬盘中。它实际上是一个基于字节数组的输出/输入流,它可以动态扩展。 使用 ByteArrayOu…

    Java 2023年5月26日
    00
  • Java中Servlet的生命周期详解

    让我给你详细讲解一下 “Java中Servlet的生命周期详解”的完整攻略。 什么是Servlet生命周期 Servlet生命周期指的是Servlet从创建到销毁的整个过程,包括初始化、服务和销毁三个过程。 Servlet生命周期的三个阶段 初始化阶段 在初始化阶段,Servlet容器创建Servlet实例,并调用init()方法初始化Servlet。在这个…

    Java 2023年6月2日
    00
  • SpringBoot如何根据用户系统时区动态展示时间

    首先,在SpringBoot中获取当前用户的时区,一般采用以下方式: @RequestMapping("/getTime") public String getTime(HttpServletRequest request) { TimeZone timeZone = (TimeZone) request.getSession().get…

    Java 2023年5月20日
    00
  • Java SimpleDateFormat与System类使用示例详解

    Java SimpleDateFormat与System类使用示例详解 SimpleDateFormat类 SimpleDateFormat是Java中用于格式化和解析日期的类,可以将日期转换为指定格式的字符串,也可以将指定格式的字符串转换为日期对象。 格式化日期 以下是一个将日期格式化为指定格式字符串的示例: import java.text.Simple…

    Java 2023年5月20日
    00
  • 简单了解Java断言利器AssertJ原理及用法

    Java断言利器AssertJ AssertJ 是一个功能强大的 Java 断言库,可以极大地简化编写测试用例时的代码书写。它提供了丰富的断言方法,使得我们可以轻松地对测试数据进行校验,同时还附带有有用的错误提示信息,在测试失败时能够很快定位到问题所在。 AssertJ的原理 AssertJ 的实现原理是基于 Java 的 Builder 模式,使用方法链来…

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