栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Thymeleaf模板引擎使用详解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Thymeleaf模板引擎使用详解

文章目录
  • 一、Thymeleaf模板引擎介绍
      • 1、官方定义
      • 2、特点
  • 二、Springboot整合Thymeleaf(以IDEA为例)
    • (一)添加依赖
    • (二)创建模板文件
      • 1、导入Thymeleaf命名空间
      • 2、编写页面代码
      • 3、编写Controller
  • 三、Thymeleaf属性值的设置
  • 四、thymeleaf语法
    • (一) 表达式语法
    • (二) 字面量
    • (三) 文本运算
    • (四) 算数运算
    • (五) 布尔运算
    • (六) 比较运算
    • (七) 条件运算符
    • (八) 无操作
  • 五、thymeleaf表达式
    • (一) 变量表达式:
    • (二)遍历
    • (三) URL表达式
  • 六、片段引用

一、Thymeleaf模板引擎介绍 1、官方定义

Thymeleaf是一个现代的服务器端 Java 模板引擎,适用于 Web 和独立环境。
Thymeleaf 的主要目标是为您的开发工作流程带来优雅的自然模板— HTML 可以在浏览器中正确显示,也可以作为静态原型工作,从而在开发团队中实现更强的协作。
Thymeleaf 具有 Spring framework 模块、大量与您最喜爱的工具集成,以及插入您自己的功能的能力,是现代 HTML5 JVM Web 开发的理想选择 — 尽管它可以做的还有很多。

2、特点

(1)语法简单且功能强大
(2)学习成本低
(3)SpringMVC集成Thymeleaf模板引擎,非常方便

二、Springboot整合Thymeleaf(以IDEA为例) (一)添加依赖

1、使用Spring Initializr 创建Springboot项目 可直接勾选依赖

或者 手动在pom.xml中添加依赖


        org.springframework.boot
        spring-boot-starter-thymeleaf
    
(二)创建模板文件 1、导入Thymeleaf命名空间

2、编写页面代码



    
    Thymeleaf使用


Hello World!

Hello World!

显示内容

3、编写Controller

注意:一定要添加Controller注解

package com.atmae.shoppingmall.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;



@Controller
public class IndexController {
    @GetMapping("/test")
    public String index(Model model){
        model.addAttribute("mess","Mae");
        return "index";
    }
}

访问 /test

结果:
Mae替换了Hello world

查看网页源代码:p标签中的Mae替换了HelloWorld

三、Thymeleaf属性值的设置

Thymeleaf模板引擎提供了许多标签属性替换HTML5原生属性的值

下面介绍几个常用的:




    
    Thymeleaf使用


Hello World!

id、name、value标签

test标签

Hello World!

class标签、href标签

链接

行内元素

[[${hang}]]


编写Controller测试

package com.atmae.shoppingmall.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;



@Controller
public class IndexController {
    @GetMapping("/test")
    public String index(ModelMap model){
        model.put("id","this is id");
        model.put("name","this is name");
        model.put("value",18);
        model.put("class","my_class");
        model.put("href","http://www.taobao.com");
        return "index";
    }
}

结果:


四、thymeleaf语法 (一) 表达式语法

1、变量表达式: ${}
2、选择变量表达式:*{}
3、信息表达式:#{}
4、连接URL表达式:@{}
5、分段表达式:~{}

(二) 字面量

1、字符串:'test'、‘oooo’
2、数组:1.0、1
3、布尔值:true、false
4、NULL值:null
5、字面量标记:sometext、main

(三) 文本运算

1、字符串拼接:+
2、字面量置换:|the name is ${name}|

(四) 算数运算

1、二元运算符:+ 、- 、* 、/ 、%
2、负号:-

(五) 布尔运算

1、二元运算符:and、or
2、非:!、not

(六) 比较运算

1、>、<、>=、<=、==、!=

(七) 条件运算符

1、IF-THEN: (if)?(then)
2、IF-THEN-ELSE: (if)?(then):(else)
3、DEFALUT: (value)?:(defalutvalue)

(八) 无操作

1、_

五、thymeleaf表达式

1、变量表达式: ${}
2、选择变量表达式:*{}
3、信息表达式:#{}
4、连接URL表达式:@{}
5、分段表达式:~{}

注意:这些表达式一般只写在th标签中 否则不会生效

(一) 变量表达式:

变量表达式可以使用内置对象
内置对象:

1、ctx:上下文对象
2、vars:上下文变量
3、locale:上下文语言环境
4、request:Web环境下的HttpServletRequest对象
5、response:Web环境下的HttpServletResponse对象
6、session:Web环境下的HttpSession对象
7、servletContext:Web环境下的HttpContext对象

例:

package com.atmae.shoppingmall.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;



@Controller
public class IndexController {
    @GetMapping("/test")
    public String index(Model model, HttpSession session, HttpServletRequest request){
        session.setAttribute("session0","Mae");
        request.setAttribute("request0","Strive");
        return "index";
    }
}



    
    Thymeleaf使用



内置对象

(二)遍历
@Controller
public class IndexController {
    @GetMapping("/test")
    public String index(Model model){
        List list=new ArrayList<>();
        list.add("cooker");
        list.add("maoo");
        list.add("helo");
        list.add("byye");
        model.addAttribute("goods",list);
        return "index";
    }
}



    
    Thymeleaf使用


遍历

num name
+ +

(三) URL表达式
@Controller
public class LoginController {
    @GetMapping("/login")
    public String login(Model model){
        List list=new ArrayList<>();
        list.add("cooker");
        list.add("maoo");
        list.add("helo");
        list.add("byye");
        model.addAttribute("goods",list);
        return "login";
    }
}



    
    Thymeleaf使用


index页

URL表达式

跳转到login页

结果:


六、片段引用

每个页面都有此标题 我们可以将他封装

Thymeleaf使用

在common.html中封装此公共代码




    
    Common


Thymeleaf使用

login 和 index 页面都引用




    
    Thymeleaf使用


index页

URL表达式

跳转到login页



    
    Thymeleaf模板使用


login页

遍历

num name
+ +



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/693719.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号