【Spring Boot】Thymeleaf模板引擎

文章目录

  • 一、前言
  • 二、Thymeleaf模板引擎
  • 三、Thymeleaf语法
    • 1. th:text&th:utext
    • 2.遍历一个集合
    • 3.表达式


一、前言

  1. 为什么要使用模板引擎?
    SpringBoot是以jar的方式,不是war方式,那么什么是JAR和WAR?
    JAR(Java Archive,Java 归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。
    WAR是一个可以直接运行的web模块,通常用于网站,打成包部署到容器中。以Tomcat来说,将war包放置在其\webapps\目录下,然后启动Tomcat,这个包就会自动解压,就相当于发布了。
    SpringBoot用的是嵌入式的Tomcat,默认是不支持jsp,纯静态页面功能太少,我们需要用到模板引擎。
  2. 什么是模板引擎?
    模板引擎是为了使用户界面与业务数据(内容)分离而产生的。

二、Thymeleaf模板引擎

官网:https://www.thymeleaf.org/
使用步骤:

  1. 导入pom
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-thymeleafartifactId>
        dependency>
  1. 创建test.html测试(再/resource/temple下创建)需要导入

<html lang="en"   xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Titletitle>
head>
<body>
<div th:text="${msg}">div>
body>
html>
  1. Controller类测试:
@Controller
public class TestController {
    @RequestMapping("/test")
    public String test(Model model){
        model.addAttribute("msg","This is a test");
        return "test";
    }

}
  1. 效果:

【Spring Boot】Thymeleaf模板引擎_第1张图片

三、Thymeleaf语法

可以参考官方使用文档:https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.pdf
可以看到一些使用规则:我们可以用th:attr来替换HTML中原生属性值
【Spring Boot】Thymeleaf模板引擎_第2张图片

1. th:text&th:utext

传递一个内容里面有标签的数据:th:text不会管,th:utext则会转义这个标签

@RequestMapping("/test")
    public String test(Model model){
        model.addAttribute("msg","

This is a test

"
); return "test"; }

【Spring Boot】Thymeleaf模板引擎_第3张图片

2.遍历一个集合

Fragment iteration th:each官方文档写道用th:each

传递一个集合:

    @RequestMapping("/test")
    public String test(Model model){
        model.addAttribute("msg","

This is a test

"
); //Arrays.asList()把一个数组转化为一个集合 model.addAttribute("students", Arrays.asList("小明","向辉","小红","李华")); return "test"; }

test.html:


<html lang="en"   xmlns:th="http://www.thymeleaf.org" xmlns:tiles="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Titletitle>
head>
<body>
<div th:utext="${msg}">div>
<h2 th:each="student:${students}" th:text="${student}">h2>

body>
html>

【Spring Boot】Thymeleaf模板引擎_第4张图片

3.表达式

  1. Simple expressions: 表达式
  • Variable Expressions: ${…} 普通变量
  • Selection Variable Expressions: *{…} 选择表达式
  • Message Expressions: #{…} 获取国际化内容
  • Link URL Expressions: @{…} 属性是url
  • Fragment Expressions: ~{…}片段引用表达式
  1. Literals字面量
  • Text literals: ‘one text’ , ‘Another one!’ ,… 单引号
  • Number literals: 0 , 34 , 3.0 , 12.3 ,…
  • Boolean literals: true , false
  • Null literal: null
  • Literal tokens: one , sometext , main ,…
  1. Text operations: 文本操作
  • String concatenation: +
  • Literal substitutions: |The name is ${name}|
  1. Arithmetic operations: 数学运算
  • Binary operators: + , - , * , / , %
  • Minus sign (unary operator): -
  1. Boolean operations:布尔运算
  • Binary operators: and , or
  • Boolean negation (unary operator): ! , not
  1. Comparisons and equality: 比较运算
  • Comparators: > , < , >= , <= ( gt , lt , ge , le )
  • Equality operators: == , != ( eq , ne )
  1. Conditional operators:条件运算:三元运算符
  • If-then: (if) ? (then)
  • If-then-else: (if) ? (then) : (else)
  • Default: (value) ?: (defaultvalue)
  1. Special tokens:
  • No-Operation: _

你可能感兴趣的:(SpringBoot,thymeleaf,模板引擎,spring,boot,spring)