`

thymeleaf日常用法

阅读更多

写在前边:

 

之前在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

分享到:
评论
1 楼 niuqiang2008 2017-08-31  
       

相关推荐

    基于SpringBoot + thymeleaf + MySQL实现图书馆管理系统.zip

    本项目“基于SpringBoot + thymeleaf + MySQL实现图书馆管理系统”正是这样一个典型示例,它结合了SpringBoot的便捷性、Thymeleaf的动态模板引擎以及MySQL数据库的强大功能,为图书馆的日常管理提供了一套完整的解决...

    学生成绩管理系统(springboot+layui+thymeleaf).zip

    此外,系统还可以实现一些高级功能,例如,使用Thymeleaf的条件判断和循环语句,可以根据学生的成绩生成不同的颜色标记,如红色表示不及格,绿色表示优秀。通过Layui的表格插件,可以实现成绩的批量导入和导出,提高...

    SpringBoot2.2.1整合项目.zip

    与SpringBoot结合,可以使用Thymeleaf的表达式语言(EL)和Thymeleaf标准语法在前端动态展示数据。项目中的Thymeleaf配置,通常包括定义TemplateResolver,设置字符编码和模板模式等。 在实际应用中,图片处理和...

    基于springboot中学生日常行为评分管理系统的论文和ppt.rar

    标题中的“基于SpringBoot中学生日常行为评分管理系统”是一个典型的IT项目,主要涉及的是使用SpringBoot框架构建一个用于管理学生日常行为评分的应用程序。SpringBoot是Spring框架的一个子项目,旨在简化Spring应用...

    基于springboot的公司日常考勤系统源码数据库.doc

    传统的手工记录方法不仅效率低下,而且容易出错。因此,开发一个基于Spring Boot技术的公司日常考勤系统显得尤为重要。 #### 2. 需求分析 - **出勤管理**:实现员工打卡、请假、加班等功能。 - **数据统计**:能够...

    Bootstrap 后台管理系统页面模板【可用】

    这个文件可能涵盖了这些按钮的使用方法和样式。 5. **directory.html**:这可能是一个目录或文件管理的页面,展示如何创建可折叠的目录结构,用于后台系统的文件浏览和管理功能。 6. **general.html**:可能是包含...

    足球联赛管理系统.zip

    同时,使用Thymeleaf模板引擎来生成动态网页。 7. **前端页面**:利用Thymeleaf的语法,创建HTML模板文件,展示和交互数据。Thymeleaf支持条件判断、循环、表达式等,使得页面与后端数据紧密联动。 8. **运行项目*...

    精品--使用Spring Boot的小型诊所信息系统,毕业设计Java版.zip

    6. **文档**:可能包含需求分析、设计文档、用户手册等,解释系统功能和使用方法。 7. **依赖管理**:可能有pom.xml(如果是Maven项目)或build.gradle(如果是Gradle项目),用于管理项目的依赖库。 8. **部署...

    SpringBoot酒店管理系统.zip

    - `README.md`:项目说明文档,通常包含项目简介、安装步骤、使用方法等内容,是理解和使用项目的重要指南。 - `pom.xml`:Maven项目的配置文件,定义了项目的依赖关系、构建过程等信息,是构建和管理项目的关键。...

    基于Springboot的原创歌曲分享平台(有报告) Javaee项目,springboot项目

    5. **前端页面开发** - 使用Thymeleaf或其他前端框架(如Bootstrap)创建用户界面。 6. **集成测试** - 编写单元测试和集成测试,确保代码质量。 7. **安全配置** - 配置Spring Security,实现用户注册、登录、...

    haozzDailyLearn:我日常学习的SpringBoot项目

    此外,还可以学习到如何使用SpringBoot集成数据库(如JPA、MyBatis等)、使用Thymeleaf或Freemarker进行视图渲染、实现RESTful API、使用Spring Security进行权限管理,以及如何使用Maven或Gradle构建和部署项目。...

    学生信息管理系统

    使用Thymeleaf创建视图模板,与后端接口配合,实现数据的展示和交互。 3.5 测试与优化 进行单元测试和集成测试,确保功能的正确性。根据测试结果优化性能,提升用户体验。 总结,学生信息管理系统是Java技术在...

    SpringBoot系列——防重放与操作幂等.doc

    在日常开发中,我们经常会遇到需要防止重复提交和操作幂等的问题,本文将记录 SpringBoot 实现简单防重放与幂等的方法。 防重放是指防止数据重复提交,例如用户多次点击提交按钮或接口短时间内被多次调用。操作幂等...

    进销管理系统 完整版

    3. 学习框架用法:深入研究Spring Boot、Spring Data JPA或MyBatis等框架的使用方法,掌握其核心概念和配置。 4. 探究权限管理:研究Spring Security的配置和权限控制机制,了解如何实现用户登录、角色分配等功能。 ...

    springboot空白项目自用

    5. **启动器**:每个SpringBoot应用都有一个主类,通常包含`public static void main(String[] args)`方法,使用`SpringApplication.run()`启动应用。 6. **Web开发**:SpringBoot支持多种Web框架,如Spring MVC。...

    springmvc jar包

    3. **@Controller** 和 **@RequestMapping**:在 Spring MVC 中,我们通常使用 @Controller 注解来标记一个类作为控制器,而 @RequestMapping 注解用于映射请求路径,将特定的 URL 请求与方法关联起来。 4. **@...

    精通Spring MVC4 带书签电子版

    本电子版详细介绍了Spring MVC4的各种特性和用法,帮助开发者提高开发效率和代码质量。 Spring MVC的设计模式基于模型-视图-控制器(Model-View-Controller),它将业务逻辑、数据处理和用户界面进行了分离,使得...

    图书管理系统 web课程设计 springboot mybatis.zip

    6. **视图层**:可能使用Thymeleaf或JSP等技术实现前端页面,展示图书信息和用户界面。 通过对这个项目的实践,学习者不仅能熟悉SpringBoot的使用,还能掌握MyBatis的数据库操作技巧,同时提升前后端交互、MVC模式...

    基于SpringBoot的养老院管理系统源码.zip

    5. **RESTful API**:系统可能采用了RESTful架构风格设计API,以资源为中心,使用HTTP方法来表示对资源的操作,易于集成和扩展。 【关键模块详解】 1. **用户管理**:包括用户注册、登录、权限分配等功能,通常...

    办公OA项目源码

    7. **视图层**:使用HTML、CSS和JavaScript实现页面展示,可以配合Thymeleaf、Freemarker等模板引擎。 在【标签】中提到的"JAVA",意味着项目的核心开发语言是Java,这保证了系统的稳定性和跨平台性。"OA"则代表了...

Global site tag (gtag.js) - Google Analytics