SpringBoot中thymeleaf的使用

IDEA中创建SpringBoot项目

整体构架

在这里插入图片描述

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.uek</groupId>
    <artifactId>springboot-study04-web-crud</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot-study04-web-crud</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <!--引入web模块-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--引入模板引擎-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

        <!--引入jquery-web的jar-->
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>jquery</artifactId>
            <version>3.4.1</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

controller


@Controller
public class HelloController {

    @ResponseBody
    @RequestMapping("/hello")
    public String hello(){
        return "Hello Word";
    }


    //查出一些数据,在页面显示
    @RequestMapping("/success")
    public String success(Map<String,Object> map){
        //classpath:templates/success
        map.put("hello","<h1>你好</h1>");
        map.put("users", Arrays.asList("zhangsan","lisi","wangwu"));
        return "success";
    }
}

success.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>thymeleaf的使用</h1>
    <!--th:text 将div里面的文本内容设置-->
    <div id="div01" class="myDir" th:id="${hello}" th:class="${hello}" th:text="${hello}">这是显示欢迎信息</div>

    <hr/>

    <div th:text="${hello}"></div>
    <div th:utext="${hello}"></div>

    <hr/>
    <!--th:each每次遍历都会生产当前这个标签-->
    <h4 th:text="${user}" th:each="user:${users}"></h4>

    <hr/>

    <h4>
        <span th:each="user:${users}">[[${user}]]</span>
    </h4>
</body>
</html>

笔记

1、导入thymeleaf的名称空间
 <html lang="en" xmlns:th="http://www.thymeleaf.org">


2、语法规则:
       1)th:text;改变当前元素里面的文本
            th:任意html属性;来替换原生属性的值
        2)thymeleaf中属性的优先级
  片段包含:类似于jsp中的jsp:include
       th:insert
       th:replace
   遍历:
       th:each
   条件判断:
       th:if
       th:unless
       th:switch
       th:case
   变量声明:
       th:object
       th:with
   任意属性修改:支持prepend,append
       th:attr
       th:attrprepend
       th:attrappend
   修改制定属性默认值
       th:value
       th:href
       th:src
       ...
   修改标签体内容:
       th:text    转义特殊字符
       th:utext   不转义特殊字符
   声明片段:
       th:fragment 

        3)thymeleaf中的表达式
Simple expressions: (表达式语法)
    Variable Expressions: ${...}    获取变量值;OGNL;
          (1)获取对象的属性、调用方法
          (2)使用内置的基本对象
          (3)内置的一些工具对象        
    Selection Variable Expressions: *{...} 选择表达式,和${}在功能上是一样的
    Message Expressions: #{...} 获取国际化内容 
    Link URL Expressions: @{...} 定义URL
    Fragment Expressions: ~{...} 片段引用表达式
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 ,… 
Text operations: (文本操作)
    String concatenation: + 
    Literal substitutions: |The name is ${name}| 
Arithmetic operations: (数学运算)
    Binary operators: + , - , * , / , % 
    Minus sign (unary operator): - 
Boolean operations: (布尔运算)
    Binary operators: and , or 
    Boolean negation (unary operator): ! , not 
Comparisons and equality:(比较运算)
    Comparators: > , < , >= , <= ( gt , lt , ge , le ) 
    Equality operators: == , != ( eq , ne ) 
Conditional operators: (条件运算,三元运算符)
    If-then: (if) ? (then) 
    If-then-else: (if) ? (then) : (else) 
    Default: (value) ?: (defaultvalue) 
Special tokens: (特殊操作)
    Page 17 of 106
    No-Operation: _
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值