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

    操作结果如图所示:

     


    推荐阅读
    • 本文介绍如何使用阿里云的fastjson库解析包含时间戳、IP地址和参数等信息的JSON格式文本,并进行数据处理和保存。 ... [详细]
    • 本文讨论了如何根据特定条件动态显示或隐藏文件上传控件中的默认文本(如“未选择文件”)。通过结合CSS和JavaScript,可以实现更灵活的用户界面。 ... [详细]
    • 精选30本C# ASP.NET SQL中文PDF电子书合集
      欢迎订阅我们的技术博客,获取更多关于C#、ASP.NET和SQL的最新资讯和资源。 ... [详细]
    • 使用GDI的一些AIP函数我们可以轻易的绘制出简 ... [详细]
    • 扫描线三巨头 hdu1928hdu 1255  hdu 1542 [POJ 1151]
      学习链接:http:blog.csdn.netlwt36articledetails48908031学习扫描线主要学习的是一种扫描的思想,后期可以求解很 ... [详细]
    • 本文介绍如何使用 NSTimer 实现倒计时功能,详细讲解了初始化方法、参数配置以及具体实现步骤。通过示例代码展示如何创建和管理定时器,确保在指定时间间隔内执行特定任务。 ... [详细]
    • 本文介绍了在Windows环境下使用pydoc工具的方法,并详细解释了如何通过命令行和浏览器查看Python内置函数的文档。此外,还提供了关于raw_input和open函数的具体用法和功能说明。 ... [详细]
    • 本文探讨了如何在编程中正确处理包含空数组的 JSON 对象,提供了详细的代码示例和解决方案。 ... [详细]
    • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
    • 在使用 MUI 框架进行应用开发时,开发者常常会遇到 mui.init() 和 mui.plusReady() 这两个方法。本文将详细解释它们的区别及其在不同开发环境下的应用。 ... [详细]
    • 高效解决应用崩溃问题!友盟新版错误分析工具全面升级
      友盟推出的最新版错误分析工具,专为移动开发者设计,提供强大的Crash收集与分析功能。该工具能够实时监控App运行状态,快速发现并修复错误,显著提升应用的稳定性和用户体验。 ... [详细]
    • 使用Python在SAE上开发新浪微博应用的初步探索
      最近重新审视了新浪云平台(SAE)提供的服务,发现其已支持Python开发。本文将详细介绍如何利用Django框架构建一个简单的新浪微博应用,并分享开发过程中的关键步骤。 ... [详细]
    • 本文介绍如何在Linux服务器之间使用SCP命令进行文件传输。SCP(Secure Copy Protocol)是一种基于SSH的安全文件传输协议,支持从远程机器复制文件到本地服务器或反之。示例包括从192.168.45.147复制tomcat目录到本地/home路径。 ... [详细]
    • 本文详细介绍了如何在CentOS 7操作系统上安装和配置Grafana,包括必要的依赖项安装、插件管理以及服务启动等步骤。 ... [详细]
    • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
      在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
    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社区 版权所有