热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

springboot2.0一看就会的超详细快速入门(六)-集成Thymeleaf模板引擎

1.理解Thymeleaf1.1Thymeleaf是一个适用于Web和独立环境的服务器端java模板引擎,能够处理HTML、XML、JavaScript、CSS甚至纯文件,常见类似的工具有JSP

1.理解Thymeleaf

1.1 Thymeleaf是一个适用于Web和独立环境的服务器端java模板引擎,能够处理HTML、XML、Javascript、CSS甚至纯文件,常见类似的工具有JSP、Freemarker等

1.2 Thymeleaf遵循的是一个自然模板的概念,主要目标是提供一种优雅且高度可维护的模板创建方式。将其逻辑注入模板文件中,不会影响模板被用作设计原型,改善了设计与开发人员沟通成本,即原型即页面。

1.3 语法优雅易懂:OGNL、SpringEL

1.4 遵循Web标准,支持HTML5

2.Thymeleaf标准语法

2.1 如何识别标准语法:

     常用:

   HTML5自定义属性标准方式:

注意:使用Thymeleaf模板需要在HTML文件中引入Thymeleaf命名空间,如下图:

控制器端代码如下:

页面显示效果:

2.2 标准语法:

2.2.1 标准表达式

变量表达式:    

语法:${...}

示例:

消息表达式(文本外部化、国际化或i18n):

语法: #{...}

示例:

选择表达式:

语法:*{...}

....

作用相当于user.name

...

与变量表达式区别:它们是在当前选择的对象而不是整个上下文变量映射上执行。优点:提高执行效率

链接表达式:

语法:@{...}

链接表达式主要作用于链接

链接表达式可以是相对的,在这种情况下,应用程序上下文将不会作为URL的前缀:

...

也可以是服务器相对(没有应用上下文前缀)

...

和协议相对:

...

绝对:

...

分段表达式:

语法:th:insert或th:replace

如下图,在header.html中写完可重用代码,其它html页面通过insert、replace调用:

运行test.html如下:

字面量表达式:

文本

显示文本:

效果演示如下:

数字:

显示文本:

数字表达式可用于各种加减乘除算术运算

布尔:

...

...

其它:

算术运算、比较和等价、条件

说明:无操作:用下划线表示:_

如果user.name不存在则无操作,保留这一段文本

如图所示:

2.2.2 设置属性值

设置任意属性值th:attr

设置值到指定属性:

...

固定值布尔属性

2.2.3 迭代器

基本迭代:th:each

  • 这里是遍历的用户名称
  • 状态变量:跟踪迭代器的状态

    index(索引从0开始)、count(计数从1开始),size(迭代器的总数)、current(当前迭代的变量)、even/odd(奇偶)、first、last

    2.2.4 条件语句

    th:if、th:unless

    switch:

    示例:

    管理员

    经理角色

    不用想了,是其它角色

    2.2.5 模板布局

    定义和引用片段

    th:fragment="common"...

    不使用th:fragment

    使用id识别示例如下:

    2.2.6 属性优先级

    具体可参照:https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#attribute-precedence

    2.2.7 注释

    标准HTML/XML注释:

    注释块:...

    原型注释块:

    2.2.8 内联

    内联表达式:

    [[...]]或[()]分别对应于th:text和th:utext(不会进行转义)

    示例:

    禁用内联:

    有时需要禁用这种机制,如某些特定条件下想要输出[[...]]或[(...)]文本内容

    th:inline="none">数组内容为:[[1,2,3,4],[6,7]]

    2.2.9 基本对象

    #ctx:上下文对象,是org.thymeleaf.context.IContext或org.thymeleaf.context.IWebContext实现

    #locale:直接访问与java.util.Locale关联的当前请求

    request/session等属性:

       param:用于检测请求参数

       session:用于检测会话参数

     application:用于检索application/servlet属性

    Web上下文对象:

    #request:直接访问与当前请求关联的javax.servlet.http.HttpServletRequest对象

    #session:直接访问与当前请求关联的javax.servlet.http.HttpSession对象

    #servletContext:直接访问与当前请求关联的javax.servlet.ServletContext对象

     

     

     

    2.2.10 工具对象

    3.Thymeleaf与Springboot集成:

    在项目POM.XML文件中添加依赖包管理:


      org.springframework.boot
      spring-boot-starter-thymeleaf

    操作结果如图所示:

     


    推荐阅读
    • 深入理解Cookie与Session会话管理
      本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
    • 在使用 MUI 框架进行应用开发时,开发者常常会遇到 mui.init() 和 mui.plusReady() 这两个方法。本文将详细解释它们的区别及其在不同开发环境下的应用。 ... [详细]
    • PHP 5.5.0rc1 发布:深入解析 Zend OPcache
      2013年5月9日,PHP官方发布了PHP 5.5.0rc1和PHP 5.4.15正式版,这两个版本均支持64位环境。本文将详细介绍Zend OPcache的功能及其在Windows环境下的配置与测试。 ... [详细]
    • 优化联通光猫DNS服务器设置
      本文详细介绍了如何为联通光猫配置DNS服务器地址,以提高网络解析效率和访问体验。通过智能线路解析功能,域名解析可以根据访问者的IP来源和类型进行差异化处理,从而实现更优的网络性能。 ... [详细]
    • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
    • 如何配置Unturned服务器及其消息设置
      本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
    • 作为一名新手,您可能会在初次尝试使用Eclipse进行Struts开发时遇到一些挑战。本文将为您提供详细的指导和解决方案,帮助您克服常见的配置和操作难题。 ... [详细]
    • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
    • 从零开始构建完整手机站:Vue CLI 3 实战指南(第一部分)
      本系列教程将引导您使用 Vue CLI 3 构建一个功能齐全的移动应用。我们将深入探讨项目中涉及的每一个知识点,并确保这些内容与实际工作中的需求紧密结合。 ... [详细]
    • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
      本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
    • 本文探讨了领域驱动设计(DDD)的核心概念、应用场景及其实现方式,详细介绍了其在企业级软件开发中的优势和挑战。通过对比事务脚本与领域模型,展示了DDD如何提升系统的可维护性和扩展性。 ... [详细]
    • 随着网络安全威胁的不断演变,电子邮件系统成为攻击者频繁利用的目标。本文详细探讨了电子邮件系统中的常见漏洞及其潜在风险,并提供了专业的防护建议。 ... [详细]
    • 本文探讨了 Spring Boot 应用程序在不同配置下支持的最大并发连接数,重点分析了内置服务器(如 Tomcat、Jetty 和 Undertow)的默认设置及其对性能的影响。 ... [详细]
    • 深入解析 Apache Shiro 安全框架架构
      本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
    • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
    author-avatar
    心茈天天开心启q
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有