SpringBoot自带模板引擎Thymeleaf使用详解

2023年 11月 10日 40.8k 0

SpringBoot是一个流行的Java框架,它提供了许多功能和插件,以简化Web应用程序的开发过程。其中之一是Thymeleaf模板引擎,它是一个流行的Java模板引擎,用于在Web应用程序中渲染HTML页面。

在SpringBoot中使用Thymeleaf非常简单,以下是使用Thymeleaf作为模板引擎的步骤:

添加依赖

首先,在项目的pom.xml文件中添加Thymeleaf的依赖:


    org.springframework.boot
    spring-boot-starter-thymeleaf
    {version}

其中{version}是SpringBoot的版本号。

配置Thymeleaf

在application.properties或application.yml文件中添加以下配置:

spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.content-type=text/html

这些配置项指定了模板文件的存放路径、文件名后缀、模板模式、编码格式和内容类型。

创建模板文件

创建一个HTML模板文件,例如index.html,并将其放置在/src/main/resources/templates/目录下。在该文件中,你可以使用Thymeleaf的语法来定义动态内容。

例如,以下是一个简单的index.html文件:




    Welcome to my site


    Hello World!

在这个例子中,我们使用了th:text属性来定义一个动态文本,它会被渲染为页面上的标题。

创建控制器

创建一个控制器类,例如IndexController.java,并将其放置在/src/main/java/目录下。在该类中,你可以使用@Controller和@GetMapping注解来定义一个处理HTTP GET请求的方法。

例如,以下是一个简单的IndexController类:

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class IndexController {
 
    @GetMapping("/")
    public String index(Model model) {
        model.addAttribute("title", "Welcome to my site");
        return "index";
    }
}

在这个例子中,我们使用@GetMapping注解来定义一个处理/路径的HTTP GET请求的方法。该方法将"title"属性添加到Model对象中,并将其返回值设置为"index",这表示渲染index.html模板文件。

  • 启动应用程序并查看结果
  • 启动SpringBoot应用程序并访问首页(即/路径),你应该会看到一个带有"Welcome to my site"标题的页面。这是因为控制器方法将"title"属性添加到Model对象中,并返回了"index"字符串,这导致Thymeleaf引擎渲染了index.html模板文件,并将"title"属性的值插入到h1元素中。

    以上就是在SpringBoot中使用Thymeleaf模板引擎的简单示例。Thymeleaf具有许多其他功能和特性,例如循环、条件语句、变量替换等等,可以让你更加灵活地渲染HTML页面。如果你想了解更多关于Thymeleaf的信息,请查看官方文档或参考相关教程和示例代码。

    相关文章

    JavaScript2024新功能:Object.groupBy、正则表达式v标志
    PHP trim 函数对多字节字符的使用和限制
    新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
    使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
    为React 19做准备:WordPress 6.6用户指南
    如何删除WordPress中的所有评论

    发布评论