番外一:Thymeleaf 与 ES6 语法

本文主要探讨Thymeleaf模板引擎的优势及在SpringBoot中的使用,包括数据提供、启动器引入、静态页面处理和模板缓存。同时,文章也详细介绍了ES6的语法特性,如let和const、字符串扩展、解构表达式、函数优化、map和reduce等,帮助读者深入理解这两个技术。
摘要由CSDN通过智能技术生成

此博客用于个人学习,来源于网上,对知识点进行一个整理。

1. Thymeleaf :

SpringBoot 并不推荐使用 jsp,但是支持一些模板引擎技术:

  • Freemarker
  • Thymeleaf
  • Mustache

本项目用到的是 Thymeleaf 技术。

1.1 Thymeleaf 的优势:

Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 JSP,其本身的特点有:

  • 动静结合:Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果。这是由于它支持 html 原型,然后在 html 标签里增加额外的属性来达到模板+数据的展示方式。浏览器解释 html 时会忽略未定义的标签属性,所以 thymeleaf 的模板可以静态地运行;当有数据返回到页面时,Thymeleaf 标签会动态地替换掉静态内容,使页面动态显示。
  • 开箱即用:它提供标准和 spring 标准两种方言,可以直接套用模板实现 JSTL、 OGNL 表达式效果,避免每天套模板、改 jstl、改标签的困扰,同时开发人员也可以扩展和创建自定义的方言。
  • 多方言支持:Thymeleaf 提供 spring 标准方言和一个与 SpringMVC 完美集成的可选模块,可以快速的实现表单绑定、属性编辑器、国际化等功能。
  • 与 SpringBoot 完美整合,SpringBoot 提供了 Thymeleaf 的默认配置,并且为 Thymeleaf 设置了视图解析器,可以像操作 jsp 一样来操作 Thymeleaf。代码几乎没有任何区别,就是在模板语法上有区别。

1.2 提供数据:

编写一个 controller 方法,返回一些用户数据,放入模型中,将来在页面渲染。

@GetMapping("/all")
public String all(ModelMap model) {
   
    // 查询用户
    List<User> users = this.userService.queryAll();
    // 放入模型
    model.addAttribute("users", users);
    // 返回模板名称(就是classpath:/templates/目录下的html文件名)
    return "users";
}

1.3 引入启动器:

通过 maven 引入依赖,SpringBoot 会自动为 Thymeleaf 注册一个视图解析器:

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

Thymeleaf 也会根据前缀和后缀来确定模板文件的位置:

在这里插入图片描述

  • 默认前缀:classpath:/templates/
  • 默认后缀:.html

所以如果我们返回视图:users,会指向到 classpath:/templates/users.html 。

1.4 静态页面:

模板默认放在 classpath 下的 templates 文件夹,我们新建一个 html 文件放入其中,渲染模型中的数据。把 html 的名称空间,改成:xmlns:th=“http://www.thymeleaf.org” 会有语法提示。

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>首页</title>
    <style type="text/css">
        table {
    border-collapse: collapse; font-size: 14px; width: 80%; margin: auto}
        table, th, td {
    border: 1px solid darkslategray;padding: 10px}
    </style>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值