热门标签 | 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

    操作结果如图所示:

     


    推荐阅读
    • CSS3选择器的使用方法详解,提高Web开发效率和精准度
      本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
    • Voicewo在线语音识别转换jQuery插件的特点和示例
      本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
    • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
    • 本文介绍了如何使用jQuery和AJAX来实现动态更新两个div的方法。通过调用PHP文件并返回JSON字符串,可以将不同的文本分别插入到两个div中,从而实现页面的动态更新。 ... [详细]
    • 本文介绍了互联网思维中的三个段子,涵盖了餐饮行业、淘品牌和创业企业的案例。通过这些案例,探讨了互联网思维的九大分类和十九条法则。其中包括雕爷牛腩餐厅的成功经验,三只松鼠淘品牌的包装策略以及一家创业企业的销售额增长情况。这些案例展示了互联网思维在不同领域的应用和成功之道。 ... [详细]
    • 本文介绍了Java后台Jsonp处理方法及其应用场景。首先解释了Jsonp是一个非官方的协议,它允许在服务器端通过Script tags返回至客户端,并通过javascript callback的形式实现跨域访问。然后介绍了JSON系统开发方法,它是一种面向数据结构的分析和设计方法,以活动为中心,将一连串的活动顺序组合成一个完整的工作进程。接着给出了一个客户端示例代码,使用了jQuery的ajax方法请求一个Jsonp数据。 ... [详细]
    • 获取ul中第一个li元素的五种方法和多个ul中第一个li元素的四种方法
      本文介绍了获取ul中第一个li元素的五种方法和多个ul中第一个li元素的四种方法,包括使用jQuery的选择器和遍历方法。通过这些方法,可以方便地获取到所需的元素,并进行相应的操作。 ... [详细]
    • 如何压缩网站页面以减少页面加载时间
      本文介绍了影响网站打开时间的两个因素,即网页加载速度和网站页面大小。重点讲解了如何通过压缩网站页面来减少页面加载时间。具体包括图片压缩、Javascript压缩、CSS压缩和HTML压缩等方法,并推荐了相应的压缩工具。此外,还提到了一款Google Chrome插件——网页加载速度分析工具Speed Tracer。 ... [详细]
    • angular.element使用方法及总结
      2019独角兽企业重金招聘Python工程师标准在线查询:http:each.sinaapp.comangularapielement.html使用方法 ... [详细]
    • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
    • android listview OnItemClickListener失效原因
      最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
    • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
    • 本文介绍了一个免费的asp.net控件,该控件具备数据显示、录入、更新、删除等功能。它比datagrid更易用、更实用,同时具备多种功能,例如属性设置、数据排序、字段类型格式化显示、密码字段支持、图像字段上传和生成缩略图等。此外,它还提供了数据验证、日期选择器、数字选择器等功能,以及防止注入攻击、非本页提交和自动分页技术等安全性和性能优化功能。最后,该控件还支持字段值合计和数据导出功能。总之,该控件功能强大且免费,适用于asp.net开发。 ... [详细]
    • 本文介绍了在满足特定条件时如何在输入字段中使用默认值的方法和相应的代码。当输入字段填充100或更多的金额时,使用50作为默认值;当输入字段填充有-20或更多(负数)时,使用-10作为默认值。文章还提供了相关的JavaScript和Jquery代码,用于动态地根据条件使用默认值。 ... [详细]
    • 概述H.323是由ITU制定的通信控制协议,用于在分组交换网中提供多媒体业务。呼叫控制是其中的重要组成部分,它可用来建立点到点的媒体会话和多点间媒体会议 ... [详细]
    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社区 版权所有