美文网首页
[Java] Spring Boot 集成 Thymeleaf

[Java] Spring Boot 集成 Thymeleaf

作者: 巨馍蘸酱 | 来源:发表于2022-06-26 16:06 被阅读0次

    Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 JSP

    pom.xml 添加依赖

            <!-- thymeleaf -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-thymeleaf</artifactId>
            </dependency>
            <!-- 允许使用非严格的 HTML 语法 -->
            <dependency>
                <groupId>net.sourceforge.nekohtml</groupId>
                <artifactId>nekohtml</artifactId>
            </dependency>
    

    application.yml自定义配置

    spring:
      # ThymeLeaf配置
      thymeleaf: # ThymeleafProperties
        prefix: classpath:/templates/ # thymeleaf模板文件前缀,可以自定义文件夹如classpath:/templates/temp
        suffix: .html # thymeleaf模板文件后缀
        mode: HTML5 # 视图模板类型
        encoding: UTF-8 # 默认视图编码格式
        cache: false # 配置页面缓存,thymeleaf默认开启缓存,页面不能及时刷新,需要关闭
        servlet:
          content-type: text/html # 响应类型
    

    Controller

    package com.example.web.controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    /**
     * @author dk
     * @create 2022-06-27 3:06 PM
     */
    @Controller
    @RequestMapping("/web/test")
    public class TestController {
        
        @GetMapping("/index")
        public String indexView(Model model) {
            model.addAttribute("name", "haha");
            return "index";
        }
    }
    
    

    HTML

    <!DOCTYPE html>
    <html xmlns:th="http://www.thymeleaf.org">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    
    <body>
    <label th:text="'hello, ' + ${name}">
    </body>
    </html>
    
    • <html> 标签使用 xmlns:th="http://www.thymeleaf.org" 声明使用 thymeleaf
    • if 为true,则标签显示
    <span th:if="${num > 10}">显示</span>
    
    • each users是一个list,通过迭代器th:each对其进行遍历,每次迭代获取到的对象为user
    <tr th:each="user : ${users}">
      <td th:text="${user.nickname}">此处会被覆盖</td>
      <td th:text="${user.username}"></td>
    </tr>
    
    • switch
    <td th:switch="${user.enabled}">
      <span th:case="true">可用</span>
      <span th:case="false">不可用</span>
    </td>
    
    • <script th:src="@{lib/jquery.js}"></script> 引用 static 的资源文件

    相关文章

      网友评论

          本文标题:[Java] Spring Boot 集成 Thymeleaf

          本文链接:https://www.haomeiwen.com/subject/patovrtx.html