springBoot加入thymeleaf模板的方式

当我们使用 Spring Boot 开发 Web 应用程序时,通常需要使用一些模板引擎来动态渲染我们的 HTML 页面。其中,Thymeleaf 是一个非常流行的模板引擎,它与 Spring Boot 集成非常容易。接下来,我将提供一份完整的攻略,指导您如何将 Thymeleaf 模板引擎添加到 Spring Boot 中。

步骤1:添加依赖

首先,您需要配置 pom.xml 文件:

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

这个依赖项包含了 Thymeleaf 模板引擎及其依赖项。

步骤2:配置视图解析器(View Resolver)

这里,我们需要添加一个视图解析器(View Resolver),它将负责将 Thymeleaf 模板映射到控制器方法返回的视图。下面是一个示例配置:

@Configuration
public class WebConfig implements WebMvcConfigurer {

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

   @Bean
   public ISpringTemplateEngine thymeleafTemplateEngine() {
       SpringTemplateEngine engine = new SpringTemplateEngine();
       engine.setEnableSpringELCompiler(true);
       engine.setTemplateResolver(thymeleafTemplateResolver());
       return engine;
   }

   @Bean
   public ITemplateResolver thymeleafTemplateResolver() {
       final SpringResourceTemplateResolver resolver = new SpringResourceTemplateResolver();
       resolver.setPrefix("classpath:/templates/");
       resolver.setTemplateMode(TemplateMode.HTML);
       resolver.setSuffix(".html");
       resolver.setTemplateMode("HTML5");
       resolver.setCharacterEncoding("UTF-8");
       resolver.setCacheable(false);
       return resolver;
   }
}

这个配置文件将以“classpath:/templates/”为目录加载 HTML 模板,并将 HTML5 视为默认模板模式。

步骤3:创建 Thymeleaf 模板

现在,您可以创建一个 Thymeleaf 模板了。

例如,创建一个包含 Thymeleaf 变量的 header.html 文件:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>首页</title>
</head>
<body>
<header th:fragment="header">
    <nav>
        <ul>
            <li><a th:href="@{/}">首页</a></li>
            <li><a th:href="@{/about}">关于我们</a></li>
            <li><a th:href="@{/contact}">联系我们</a></li>
        </ul>
    </nav>
</header>
</body>
</html>

注意,在模板中,使用 th: 前缀声明变量。

步骤4:创建控制器并返回 Thymeleaf 视图

接下来,您需要创建一个控制器,它将返回您刚才创建的 Thymeleaf 模板。

例如,创建一个 HomeController 类:

@Controller
public class HomeController {

   @GetMapping("/")
   public String home(Model model) {
       return "home";
   }

   @GetMapping("/about")
   public String about(Model model) {
       return "about";
   }

   @GetMapping("/contact")
   public String contact(Model model) {
       return "contact";
   }
}

这个控制器有 3 个处理方法,分别对应于上面 header.html 中声明的 3 个链接。您可以在这些处理方法中使用 Model 对象来设置变量。

例如,创建一个 home.html 文件来显示 home 控制器的内容:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>首页</title>
</head>
<body>
    <header th:replace="header :: header"></header>
    <div>
        <h2>欢迎来到我的博客!</h2>
        <p>这是一个 Spring Boot + Thymeleaf 的示例项目。</p>
    </div>
</body>
</html>

如此简单,我们已经完成了将 Thymeleaf 模板引擎添加到 Spring Boot 项目中的过程。

示例1:添加变量到模板中

您也可以使用 Model 对象来在模板中添加变量。例如,您可以添加一个时间戳变量:

@GetMapping("/time")
public String time(Model model) {
   model.addAttribute("time", LocalDateTime.now());
   return "time";
}

然后在模板 time.html 中使用它:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
   <meta charset="UTF-8">
   <title>时间戳</title>
</head>
<body>
   <header th:replace="header :: header"></header>
   <div>
       <h2>现在的时间是:</h2>
       <p th:text="${time}">2022-07-30T21:34:35.902</p>
   </div>
</body>
</html>

示例2:循环添加变量

对于更复杂的模板,您可以使用 Thymeleaf 的循环功能来遍历集合并动态添加变量。例如,如果有一个包含简单文章对象的列表:

@GetMapping("/articles")
public String articles(Model model) {
    List<Article> articles = Arrays.asList(
            new Article("Spring Boot 入门教程", "2022-07-30"),
            new Article("Spring Boot 自动配置原理", "2022-07-31"),
            new Article("Spring Boot + Thymeleaf 实战", "2022-08-01")
    );
    model.addAttribute("articles", articles);
    return "articles";
}

则可以在 articles.html 模板中使用以下代码将其呈现:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>文章列表</title>
</head>
<body>
   <header th:replace="header :: header"></header>
   <h2>文章列表</h2>
    <table>
        <tr>
            <th>标题</th>
            <th>日期</th>
        </tr>
        <tr th:each="article : ${articles}">
            <td th:text="${article.title}">Spring Boot 入门教程</td>
            <td th:text="${article.date}">2022-07-30</td>
        </tr>
    </table>
</body>
</html>

这是将 Thymeleaf 模板引擎添加到 Spring Boot 项目中的简单过程,同时也展示了一些模板的常见用法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:springBoot加入thymeleaf模板的方式 - Python技术站

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

相关文章

  • 怎么设置默认浏览器 3种更改默认浏览器方法

    以下是“怎么设置默认浏览器 3种更改默认浏览器方法”的完整攻略: 怎么设置默认浏览器 3种更改默认浏览器方法 默认浏览器是指在打开链接时自动使用的浏览器。在使用电脑时,用户可以根据自己的需求更改默认浏览器。下面是三种更改默认浏览器的方法。 方法1:在浏览器中更改 用户可以在浏览器中更改默认浏览器。具体步骤如下: 打开浏览器,进入浏览器设置页面。 在设置页面中…

    html 2023年5月18日
    00
  • C++使用TinyXML解析XML

    以下是使用TinyXML解析XML的完整攻略: 简介 XML(eXtensible Markup Language)是一种用于标记电子文件使其具有结构性的标记语言,C++是一种高级编程语言。TinyXML是一个开源的C++解析器,专用于解析XML标记语言。 安装 在使用TinyXML前,首先需要下载并安装它。TinyXML的官网链接为:http://www.…

    html 2023年5月30日
    00
  • Win10系统安装字体后Edge浏览器打开网页出现乱码的原因及解决方法

    下面是关于“Win10系统安装字体后Edge浏览器打开网页出现乱码的原因及解决方法”的完整攻略。 问题背景 在使用Edge浏览器浏览网页时,有时会出现网页中文乱码的问题,其原因是安装了新的字体后导致Edge浏览器无法正确显示网页文字。 问题原因及解决方法 字体缺失或损坏 如果浏览器无法找到所需的字体,就会出现网页显示乱码的错误。此时,我们需要检查系统中是否缺…

    html 2023年5月31日
    00
  • 怎么设置永久禁用Win10驱动程序强制签名? 一个命令帮你搞定

    如果您需要在Win10系统中永久禁用驱动程序强制签名,可以尝试以下解决方法: 解决方法1:使用高级启动选项 打开“设置”应用程序,选择“更新和安全”。 在“恢复”选项卡中,找到“高级启动”部分,点击“立即重新启动”。 在高级启动选项中,选择“疑难解答”>“高级选项”>“启动设置”>“重启”。 在启动设置中,按下“7”键,选择“禁用驱动程序签…

    html 2023年5月17日
    00
  • 4090显卡怎么样 4090显卡性能预测

    以下是“4090显卡怎么样 4090显卡性能预测”的完整攻略: 4090显卡怎么样? 4090显卡是NVIDIA公司推出的一款高端显卡,采用最新的GPU架构和制造工艺,拥有强大的性能和低功耗特性。该显卡被广泛应用于游戏、图形处理、人工智能等领域。下面是一些关于4090显卡的评测和技巧,可以帮助用户更好地了解该显卡。 评测1:强大的性能 4090显卡采用最新的…

    html 2023年5月18日
    00
  • 格式工厂怎么将webp转为jpg格式?格式工厂将webp转为jpg格式教程

    以下是“格式工厂怎么将webp转为jpg格式?格式工厂将webp转为jpg格式教程”的完整攻略: 格式工厂怎么将webp转为jpg格式? 格式工厂是一款免费的多媒体文件转换软件,可以将各种格式的音视频文件、图片文件进行转换。下面是一些关于如何使用格式工厂将webp转为jpg格式的技巧和步骤,可以帮助用户进行有效的转换。 技巧1:下载并安装格式工厂 在进行we…

    html 2023年5月18日
    00
  • mybatis where 标签使用

    下面我将详细讲解“Mybatis where标签使用”的完整攻略,以及附带两条示例说明。 1. where 标签介绍 where 标签是 Mybatis 中用于动态生成 WHERE 子句的标签。它的作用可以在 SQL 语句中加入 WHERE 子句,将这个子句和其他的条件组合在一起。 2. where 标签用法 where 标签通常和其他的标签一起使用,比如:…

    html 2023年5月30日
    00
  • HTML基础之HTML内容细则

    HTML (Hyper Text Markup Language)是用于创建网页的标准标记语言。HTML文档由多个元素构成,这些元素可以使用标记来定义。在HTML中,元素通常有一个开始标记和一个结束标记,中间包含要在浏览器中显示的内容。 HTML元素的基本结构 HTML基础之HTML内容细则中,我们需要首先了解HTML元素的基本结构: <element…

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