• srpingBoot:引入thymeleaf


    前言:

    Thymeleaf 官网:https://www.thymeleaf.org/

    Thymeleaf 在Github 的主页:https://github.com/thymeleaf/thymeleaf

      前端交给页面,以前开发,需要把他们转成jsp,好处:当查出一些数据转发到JSP页面以后,我可以用jsp轻松实现数据的显示,和交互。jsp支持非常强大 的功能,比如,能写jsp页面

      但是,我们现在的这种情况,SpringBoot这个项目首先是以jar的方式,不是war,像第二,我们用的还是嵌入式的Tomcat,所以,他现在默认是不支持jsp的,

      因此,springboot推荐使用模板引擎,

    什么是模板引擎?

        我们其实大家听到很多,其实jsp就是一个模板引擎,还有用的比较多的freemarker,包括SpringBoot给我们推荐的Thymeleaf,模板引擎有非常多,但再多的模板引擎,他们的思想都是一样的。

    模板一引擎执行过程:

    初步使用thymelea模板

    starter开启thymelea,(自动装配)

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

    手动diy导入thymeleaf 

            <dependency>
                <groupId>org.thymeleaf</groupId>
                <artifactId>thymeleaf-spring5</artifactId>
            </dependency>
            <dependency>
                <groupId>org.thymeleaf.extras</groupId>
                <artifactId>thymeleaf-extras-java8time</artifactId>
            </dependency>

    测试

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <h1>test</h1>
    </body>
    </html>
    
    
    ============Controller===============
    package com.king.Controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @Controller
    public class IndexController {
    
        @RequestMapping("/test")
        public String test(){
            return "test";
        }
    }

    小结:

    在template目录下的所有页面,只能通过controller来跳转
    这个需要模板引擎的支持,thymeleaf,在这个引擎return的字符串会被加上前缀和后缀 
    找到ThymeleafProperties源文件会发现:
      private String prefix = "classpath:/templates/";
      private String suffix = ".html";

    thymeleaf语法

    1.首先,来看如何利用thymleaf传参  ,xmlns:th="http://www.thymeleaf.org"

    <!DOCTYPE html>
    <html lang="en" xmlns:th="http://www.thymeleaf.org">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <h1 th:text="${msg}"></h1>
    </body>
    </html>
    
    
    ===========Controller=============
    @Controller
    public class IndexController {
    
        @RequestMapping("/test")
        public String test(Model model){
            model.addAttribute("msg","hello,test");
            return "test";
        }
    }

    注意:在使用thymeleaf时用链接作用域:<html lang="en"   xmlns:th="http://www.thymeleaf.org">

    2,语法  

    官网: 

    简单的测试:

    <!DOCTYPE html>
    <html lang="en" xmlns:th="http://www.thymeleaf.org">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <div th:text="${msg}"></div>
    <!--th:utext不转义-->
    <div th:utext="${msg}"></div>
    <hr>
    <!--遍历-->
    <div th:each="arr:${arrs}" th:text="${arr}"></div>
    
    </body>
    </html>
    
    
    ==========Controller=============
    
    @Controller
    public class IndexController {
    
        @RequestMapping("/test")
        public String test(Model model){
            model.addAttribute("msg","<h1>hello,test</h1>");
            model.addAttribute("arrs", Arrays.asList("king","king2","king3"));
            return "test";
        }
    }

    这里仅接受如何使用thymeleaf的html如何操作

    其他基操请参考官文,那是最准确的 

    Thymeleaf 官网:https://www.thymeleaf.org/

    Thymeleaf 在Github 的主页:https://github.com/thymeleaf/thymeleaf

  • 相关阅读:
    WebSocket使用及优化(心跳机制与断线重连)
    JS案例:触底懒加载
    你知道近来年大火的DDD是如何兴起的吗?以及与微服务的关系
    Sql Server的Cross Apply用法
    跨域信息传递解决方案
    【转】理解字节序
    NATAPP优惠码
    <学习笔记>筛法
    <学习笔记>线性基
    【react + BizCharts】
  • 原文地址:https://www.cnblogs.com/CL-King/p/14052560.html
Copyright © 2020-2023  润新知