欢迎访问宙启技术站
智能推送

SpringBoot入门十六,添加Thymeleaf模板支持

发布时间:2023-05-18 01:57:30

在前面的文章中我们已经学习了如何使用SpringBoot来构建Web应用程序。在这篇文章中,我们将介绍如何集成Thymeleaf模板引擎来实现视图渲染。

Thymeleaf是一种模板引擎,它允许我们使用HTML模板语言和Java代码来创建动态网页。它使用自然的模板语法,易于学习和使用,同时也支持国际化和安全性。

在SpringBoot中,默认的视图渲染引擎是使用JSP(JavaServer Pages),但是JSP存在一些问题,比如缺乏标准化、性能低下等。Thymeleaf的出现解决了这些问题,它是一种优秀的替代品。

本文将介绍如何添加Thymeleaf模板支持到SpringBoot应用程序中,包括添加依赖、创建Thymeleaf配置、创建模板文件等。

1、添加Thymeleaf依赖

首先,我们需要添加Thymeleaf的依赖。在pom.xml文件中添加以下依赖:

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

2、创建Thymeleaf配置

然后,我们需要创建Thymeleaf的配置类。在该类中,我们可以设置模板文件的前缀和后缀,以及其他的一些配置。示例代码如下:

@Configuration
public class ThymeleafConfig {

    @Bean
    public ViewResolver viewResolver() {
        ThymeleafViewResolver resolver = new ThymeleafViewResolver();
        resolver.setTemplateEngine(templateEngine());
        resolver.setCharacterEncoding("UTF-8");
        return resolver;
    }

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

    private ITemplateResolver templateResolver() {
        SpringResourceTemplateResolver resolver = new SpringResourceTemplateResolver();
        resolver.setPrefix("classpath:/templates/");
        resolver.setSuffix(".html");
        resolver.setTemplateMode(TemplateMode.HTML);
        resolver.setCharacterEncoding("UTF-8");
        return resolver;
    }
}

在该类中,我们定义了一个ViewResolver Bean和一个SpringTemplateEngine Bean。ViewResolver Bean用于解析视图名称和生成视图实例,而SpringTemplateEngine Bean用于处理模板解析和渲染工作。

在templateResolver()方法中,我们设置了模板文件的前缀和后缀,并指定模板文件的类型为HTML。我们还设置了字符编码为UTF-8,以避免出现中文乱码的问题。

3、创建模板文件

现在,我们已经完成了Thymeleaf的配置,接下来是创建模板文件。我们可以在src/main/resources/templates目录下创建一个index.html文件作为示例模板文件。

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Thymeleaf示例</title>
</head>
<body>
    <h1 th:text="${message}"></h1>
</body>
</html>

在该模板文件中,我们使用了Thymeleaf的模板语法。在h1标签中使用了th:text属性,该属性用于将message变量的值渲染到该标签中。message变量的值需要在Controller中进行设置。

4、创建Controller

最后,我们需要创建一个Controller类,该类用于处理请求并返回视图。在该类中,我们需要定义一个方法,该方法返回模板文件的名称和模板变量。示例代码如下:

@Controller
public class IndexController {

    @GetMapping("/")
    public String index(Model model) {
        model.addAttribute("message", "Hello Thymeleaf!");
        return "index";
    }
}

在该Controller类中,我们定义了一个index()方法,该方法使用@GetMapping注解来映射根路径。在该方法中,我们创建了一个model对象,并向其中添加了一个名为“message”的模板变量,它的值为“Hello Thymeleaf!”。最后,我们返回了名为“index”的模板文件名称。

5、运行应用程序

现在,我们已经完成了Thymeleaf模板的设置。启动SpringBoot应用程序,访问http://localhost:8080/,您应该可以看到“Hello Thymeleaf!”的页面。

总结

在这篇文章中,我们介绍了如何使用Thymeleaf模板引擎来实现视图渲染。我们添加了Thymeleaf的依赖,创建了Thymeleaf的配置类,创建了模板文件,以及创建了一个Controller类。通过这篇文章,你应该已经掌握了使用Thymeleaf来构建SpringBoot应用程序的基础知识。