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日

相关文章

  • Win7 中文显示乱码的解决方法

    Win7 中文显示乱码的解决方法 如果你在使用 Windows 7 操作系统时遇到中文字体显示乱码的问题,可以按照以下步骤进行解决。 步骤1:检查系统语言设置 首先,我们需要确保系统语言设置为中文。具体操作步骤如下: 点击“开始”菜单,在搜索框中输入“控制面板”,并打开控制面板。 在控制面板窗口中,选择“时钟、语言和地区”。 点击“区域和语言”选项。 在窗口…

    html 2023年5月31日
    00
  • 解决tomcat 静态页面(html)中文乱码的解决终极篇

    解决tomcat静态页面(html)中文乱码需要注意以下几点: 1. 确认编码格式 html文件在文件头部分需要加上编码格式的声明,例如<meta charset=”UTF-8″>,这里的UTF-8可以根据实际情况进行修改,但是需要保证每个html文件的编码格式是一致的。 2. 确认服务器端的编码格式 Tomcat服务器默认是使用ISO-8859…

    html 2023年5月31日
    00
  • 巧妙mybatis避免Where 空条件的尴尬

    针对“巧妙mybatis避免Where 空条件的尴尬”的问题,我将为您提供以下完整攻略。 什么是Where空条件的尴尬? 在使用Mybatis进行条件查询时,如果某一个或多个查询条件传入的值为空,那么在拼接SQL语句时就会出现WHERE后面没有任何条件的情况,这样不仅会对查询性能造成一定的影响,还降低了查询的准确性。 如何巧妙避免Where空条件的尴尬? 为…

    html 2023年5月30日
    00
  • 解决ubuntu系统下vimtutor乱码

    下面是解决Ubuntu系统下vimtutor乱码的完整攻略: 问题描述 在Ubuntu系统中运行vimtutor时,中文内容会出现乱码。 原因分析 vimtutor使用的是Linux系统中的man格式文件,以纯文本的形式展示内容,而默认编码格式是UTF-8,因此如果系统设置不支持UTF-8编码,就会出现中文乱码的问题。 解决方案 查看当前系统编码 在终端中输…

    html 2023年5月31日
    00
  • labra是什么币?LADYS币一文读懂

    以下是“labra是什么币?LADYS币一文读懂”的完整攻略: labra是什么币? labra是一种加密货币,它是基于以太坊区块链的ERC-20代币。labra的官方网站是https://labra.finance/,它的目标是成为一个去中心化的金融平台,提供各种金融服务,如借贷、交易和投资。 labra的特点 labra有以下几个特点: 去中心化:lab…

    html 2023年5月18日
    00
  • CSS 文本渲染属性text-rendering的介绍和使用示例

    关于CSS文本渲染属性text-rendering的使用,我可以给你一份完整攻略。 什么是text-rendering属性 text-rendering属性用于控制浏览器在渲染文字时的细节选项,可以影响字体呈现的平滑性、清晰度和精度。 在默认情况下,浏览器会使用其内置的文本渲染引擎来呈现文本,但是在某些情况下,开启ascii-art风格呈现文本、优化呈现表单…

    html 2023年5月30日
    00
  • Php header()函数语法及使用代码

    接下来我会详细讲解“Php header()函数语法及使用代码”的完整攻略。 header()函数的语法 header()函数用于向客户端发送原始的HTTP头信息,该函数需要放在所有页面输出之前。下面是header()函数的语法: header(string $header, bool $replace = true, int $http_response_…

    html 2023年5月30日
    00
  • PHP中使用SimpleXML检查XML文件结构实例

    使用SimpleXML可以方便地处理XML格式数据。如果我们想要检查一个XML文件的结构,用SimpleXML也可以实现。下面是一个检查XML文件结构的完整攻略: 1. 创建SimpleXML对象 首先,我们需要使用SimpleXML创建一个XML对象。可以使用simplexml_load_file()函数从一个XML文件创建SimpleXML对象,也可以使…

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