写在前边:
之前在spring boot 开发的时候,在Spring boot中使用thymeleaf的 ~{...} 这种针对fragment的写法一直不好使。原来是使用的版本和所看的文档不一致,用的是2.0的版本,但一直看3.0的文档。
<head th:fragment="common_header(title,links)"> <title th:replace="${title}">The awesome application</title> <!-- Common styles and scripts --> <link rel="stylesheet" type="text/css" media="all" th:href="@{/css/awesomeapp.css}"> <link rel="shortcut icon" th:href="@{/images/favicon.ico}"> <script type="text/javascript" th:src="@{/sh/scripts/codebase.js}"></script> <!--/* Per-page placeholder for additional links */--> <th:block th:replace="${links}" /> </head> <head th:replace="base :: common_header(~{::title},~{::link})"> <title>Awesome - Main</title> <link rel="stylesheet" th:href="@{/css/bootstrap.min.css}"> <link rel="stylesheet" th:href="@{/themes/smoothness/jquery-ui.css}"> </head>
Spring Boot默认选择的Thymeleaf是2.0版本的,那么如果我们就想要使用3.0版本或者说指定版本呢,那么怎么操作呢?在这里要说明下 3.0的配置在spring boot 1.4.0+才支持的 ,在1.4.0版本默认的还是选择2.0版本的。
只需要在pom.xml加入配置即可,具体看代码:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- set thymeleaf version -->
<thymeleaf.version>3.0.0.RELEASE</thymeleaf.version>
<thymeleaf-layout-dialect.version>2.0.0</thymeleaf-layout-dialect.version>
</properties>
那么之后就是使用了3.0的模板引擎进行渲染的。
spring boot中使用thymeleaf引入依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
下面针对thymeleaf的常用用法介绍一下:
1、注释:
1.1 <!--/* xxxc */-->
咱们html页面的注释 <!-- xxxx --> 这种虽然展示效果上没有了,但是通过查看源文件还是可以看到的。但是thymeleaf的注释 <!--/* <div>you can see me only before thymeleaf processes me!</div> */-->
<!--/* xxxc */--> 这些代码会被引擎解析时去掉,并且查看源代码也看不到哦。这种静态打开也动态运行都是看不到的哦。
1.2
<table> <tr> <td>aaa</td> </tr> <!--/*--> <tr> <td>aaa1</td> </tr> <tr> <td>aaa2</td> </tr> <!--*/--> </table>
如果是以上的这种写法,在静态打开是就会显示,但是动态程序运行时也是不显示的哦。
1.3 静态解析时被注释,thymeleaf解析时会移除<!--/*/ 和 /*/-->标签对,内容保留
静态时被注释掉,查看源文件可以看到,但是浏览器打开的效果是看不到展示内容的
thymeleaf解析,即动态运行时可以正常执行
2 、th:block
th:block用来定义一个代码块。并执行里面的属性。这将在循环的时候特别有用。
3、简单表达式
变量表达式: ${...}
Selection Variable Expressions: *{...}
消息表达式: #{...}
URL表达式: @{...}
Fragment Expressions: ~{...}
4、th:fragment、th:include 、th:replace
默认spring boot读取thymeleaf文件的路径是src/main/resource/templates,静态文件是src/main/resource/static
这个默认的值是可以再application.properties中进行修改的
spring.thymeleaf.prefix=classpath:/templates/
classpath的路径是读取.class的路径
文件路径:src/main/resource/templates/commom
<!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <body> <div th:fragment="copyright"> © 2016 xxx </div> </body> </html>
Footer: <div th:include="common/footer :: copyright"></div>
5、Flexible layouts: beyond mere fragment insertion
<head th:fragment="header(title,links,scripts)"> <title th:replace="${title}">The awesome application</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <th:block th:replace="${links}" /> <th:block th:replace="${scripts}" /> </head>
调用:
<head th:include="common/header :: header(~{::title},~{::link},~{::script})"> <title>Awesome - Main</title> <link rel="stylesheet" th:href="@{/css/index.css}"> <script th:src="@{/js/index.js}"></script> </head>
css的目录为 :src\main\resources\static\css\index.css
@{}这种不需要执行contextPath了,默认就加入了
注意是link 和script,不是links 和scripts
如果调用的页面没有link或者script ,则指定传入的参数为~{}即可。
<head th:include="common/header :: header(~{::title},~{},~{})">
相关技术来源:http://www.iteye.com/topic/1144720
相关推荐
本项目“基于SpringBoot + thymeleaf + MySQL实现图书馆管理系统”正是这样一个典型示例,它结合了SpringBoot的便捷性、Thymeleaf的动态模板引擎以及MySQL数据库的强大功能,为图书馆的日常管理提供了一套完整的解决...
此外,系统还可以实现一些高级功能,例如,使用Thymeleaf的条件判断和循环语句,可以根据学生的成绩生成不同的颜色标记,如红色表示不及格,绿色表示优秀。通过Layui的表格插件,可以实现成绩的批量导入和导出,提高...
与SpringBoot结合,可以使用Thymeleaf的表达式语言(EL)和Thymeleaf标准语法在前端动态展示数据。项目中的Thymeleaf配置,通常包括定义TemplateResolver,设置字符编码和模板模式等。 在实际应用中,图片处理和...
标题中的“基于SpringBoot中学生日常行为评分管理系统”是一个典型的IT项目,主要涉及的是使用SpringBoot框架构建一个用于管理学生日常行为评分的应用程序。SpringBoot是Spring框架的一个子项目,旨在简化Spring应用...
传统的手工记录方法不仅效率低下,而且容易出错。因此,开发一个基于Spring Boot技术的公司日常考勤系统显得尤为重要。 #### 2. 需求分析 - **出勤管理**:实现员工打卡、请假、加班等功能。 - **数据统计**:能够...
这个文件可能涵盖了这些按钮的使用方法和样式。 5. **directory.html**:这可能是一个目录或文件管理的页面,展示如何创建可折叠的目录结构,用于后台系统的文件浏览和管理功能。 6. **general.html**:可能是包含...
同时,使用Thymeleaf模板引擎来生成动态网页。 7. **前端页面**:利用Thymeleaf的语法,创建HTML模板文件,展示和交互数据。Thymeleaf支持条件判断、循环、表达式等,使得页面与后端数据紧密联动。 8. **运行项目*...
6. **文档**:可能包含需求分析、设计文档、用户手册等,解释系统功能和使用方法。 7. **依赖管理**:可能有pom.xml(如果是Maven项目)或build.gradle(如果是Gradle项目),用于管理项目的依赖库。 8. **部署...
- `README.md`:项目说明文档,通常包含项目简介、安装步骤、使用方法等内容,是理解和使用项目的重要指南。 - `pom.xml`:Maven项目的配置文件,定义了项目的依赖关系、构建过程等信息,是构建和管理项目的关键。...
5. **前端页面开发** - 使用Thymeleaf或其他前端框架(如Bootstrap)创建用户界面。 6. **集成测试** - 编写单元测试和集成测试,确保代码质量。 7. **安全配置** - 配置Spring Security,实现用户注册、登录、...
此外,还可以学习到如何使用SpringBoot集成数据库(如JPA、MyBatis等)、使用Thymeleaf或Freemarker进行视图渲染、实现RESTful API、使用Spring Security进行权限管理,以及如何使用Maven或Gradle构建和部署项目。...
使用Thymeleaf创建视图模板,与后端接口配合,实现数据的展示和交互。 3.5 测试与优化 进行单元测试和集成测试,确保功能的正确性。根据测试结果优化性能,提升用户体验。 总结,学生信息管理系统是Java技术在...
在日常开发中,我们经常会遇到需要防止重复提交和操作幂等的问题,本文将记录 SpringBoot 实现简单防重放与幂等的方法。 防重放是指防止数据重复提交,例如用户多次点击提交按钮或接口短时间内被多次调用。操作幂等...
3. 学习框架用法:深入研究Spring Boot、Spring Data JPA或MyBatis等框架的使用方法,掌握其核心概念和配置。 4. 探究权限管理:研究Spring Security的配置和权限控制机制,了解如何实现用户登录、角色分配等功能。 ...
5. **启动器**:每个SpringBoot应用都有一个主类,通常包含`public static void main(String[] args)`方法,使用`SpringApplication.run()`启动应用。 6. **Web开发**:SpringBoot支持多种Web框架,如Spring MVC。...
3. **@Controller** 和 **@RequestMapping**:在 Spring MVC 中,我们通常使用 @Controller 注解来标记一个类作为控制器,而 @RequestMapping 注解用于映射请求路径,将特定的 URL 请求与方法关联起来。 4. **@...
本电子版详细介绍了Spring MVC4的各种特性和用法,帮助开发者提高开发效率和代码质量。 Spring MVC的设计模式基于模型-视图-控制器(Model-View-Controller),它将业务逻辑、数据处理和用户界面进行了分离,使得...
6. **视图层**:可能使用Thymeleaf或JSP等技术实现前端页面,展示图书信息和用户界面。 通过对这个项目的实践,学习者不仅能熟悉SpringBoot的使用,还能掌握MyBatis的数据库操作技巧,同时提升前后端交互、MVC模式...
5. **RESTful API**:系统可能采用了RESTful架构风格设计API,以资源为中心,使用HTTP方法来表示对资源的操作,易于集成和扩展。 【关键模块详解】 1. **用户管理**:包括用户注册、登录、权限分配等功能,通常...
7. **视图层**:使用HTML、CSS和JavaScript实现页面展示,可以配合Thymeleaf、Freemarker等模板引擎。 在【标签】中提到的"JAVA",意味着项目的核心开发语言是Java,这保证了系统的稳定性和跨平台性。"OA"则代表了...