thymeleaf的简单用法-常用标签

一.常用标签的用法

1.1 th:text 用于文本的显示,并且可以进行简单的计算。

<td  th:text="${username}">mlm</td> -> <td>maliming</td>

<td  th:text="9+7">2018</td> -> <td>16</td>

1.2 th:utext 用于html的文本替换,常用于富文本编辑器编辑后的内容显示到前台页面上。

<p th:utext="${article.content}"></p> -> <p>my name is <b>maliming</b></p>

1.3 th:if 用于判断条件,还可以多条件 and,or(二元操作符),!,not非(一元操作符)。

<div th:if="${user} != null">show</div>如果user对象为空则不显示,不为空则显示 -> <div>show</div>

<div th:if="${user} != null and ${otherUser} != null">show</div> 

运算符还可以写在${}里<div th:if="${user.number > 100}">show</div> -> <div>show</div> 运算符放在了 {} 内部, 此时整个 {} 内的表达式用 ognl/spel 引擎计算; 如果运算符放在外部, 那么 thymeleaf 引擎负责计算。

1.4 th:unless 用于判断条件,与th:if作用相反。

<div th:if="${user} != null">show</div>如果user对象不为空则不显示,为空则显示 -> <div>show</div> 

1.5 th:switch th:case 用于多个同等级相同目的判断,多选一时使用。

<div th:switch="${user.name}">

    <p th:case="maliming">first</p>若${user.name}中的值为maliming则显示,否则不显示

    <p th:case="${otherUser.name}">second</p>

</div>

1.6 th:action 用于定义后台控制器的路径,表单的提交地址,相当于<form>标签的action属性。

<form th:action="@{user/login}" method="post"></form>

1.7 th:each 用于遍历集合中的对象,相当于jstl中的<c:forEach>标签。

List集合循环遍历

<tr th:each="user,userStat:${messages.list}">

    <td th:text="${user.name}"></td>

    <td th:text="userStat.index"></td>

</tr>

其中的user是临时变量,相当于for(User user : users)中的user,userStat称为状态变量,属性有index:当前迭代对象的index(从0开始计算),count: 当前迭代对象的index(从1开始计算), size:被迭代对象的大小,current:当前迭代变量,even/odd:布尔值,当前循环是否是偶数/奇数(从0开始计算), first:布尔值,当前循环是否是第一个,last:布尔值,当前循环是否是最后一个。

Map集合循环遍历

<div th:each="map:${maps}" th:text="${map}"></div>

数组循环遍历

<tr>

    <td th:each="array:${arrays}" th:text="${array}"></td>

</tr>

1.8 th:value 用于属性赋值。

<option th:value="${user.name}"></option> -> <option value="maliming"></option>

1.9 th:src 用于外部资源的引入,例如图片,js文件。

<img th:src="@{../images/myself.jpg}"/>或<script th:src="@{../static/login.js}"></script>

1.10 th:href 用于定义超链接,相当于<a></a>标签的href属性。

<a th:href="@{/user/selectUser?(currentPage=1,reTypeid=${reTypeid},inquiry=${inquiry})}"></a> 传参。

1.11 th:remove 用于删除。可以表达式传参。

<table border="1">  
    <thead>  
          <tr>  
             <th>编号</th>  
             <th>用户名</th>    
             <th>姓名</th>   
             <th>性别</th>  
          </tr>  
    </thead>  
    <tbody th:remove="all-but-first" 或者表达式th:remove="${choice}? all : all-but-first">  
          <tr>  
             <td>1</td>  
             <td>xxxxxxxx@qq.com</td>  
             <td>Tom</td>  
             <td>男</td>  
          </tr>  
          <tr>  
             <td>3</td>  
             <td>xxxxxxxx@qq.com</td>  
             <td>Lucy13</td>  
             <td>女</td>  
           </tr>  

     </tbody>

</table>  

这里的<tbody></tbody>标签中有th:remove="all-but-first",意思是只保留<tbody></tbody>标签中的第一个字标签,也就是name为Tom的所在<tr></tr>,其他的子标签则会删除,th:remove有五个属性值。

all:删除所在标签和内容及其所属的所有子标签。body:删除所在标签的内容及其所属的所有子标签。tag:删除所在标签,不删除任何所属的子标签。all-but-first:删除除第一个子标签外的其他子标签。none:不起作用,什么也不做。

1.12 th:selected 用于选择框设置选中值。通常和th:each一起使用。

<select>

    <option th:selected="${user.name} == ${otherUser.name}"></option> 若相等就默认选中此<option></option>

</select>

1.13 th:object 用于表单数据对象绑定,后台controller中参数保持一致,和选择(星号)表达式。

<form th:object="${user}">

    <input th:value="*{name}"/> *号代替了${user}

</form>

public ModelAndView addUser(@RequestParam(value = "user") User user,ModelMap model){}

 

1.14 th:attr 用于设置任意属性

<input th:attr="value=${user.name}"/> 设置单个属性。

<input th:attr="value=${user.username},name=username"/> 设置多个属性之间用逗号隔开。

二.Thymeleaf中的内置对象

#dates:日期格式化内置对象,具体方法可以参照java.util.Date;
#calendars:类似于#dates,但是是java.util.Calendar类的方法;
#numbers: 数字格式化;
#strings:字符串格式化,具体方法可以参照java.lang.String,如startsWith、contains等;
#objects:参照java.lang.Object;
#bools:判断boolean类型的工具;
#arrays:数组操作的工具;
#lists:列表操作的工具,参照java.util.List;
#sets:Set操作工具,参照java.util.Set;
#maps:Map操作工具,参照java.util.Map;
#aggregates:操作数组或集合的工具;

#messages:操作消息的工具。

--------------------- 本文来自 malimingwq 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/malimingwq/article/details/79329921?utm_source=copy

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第1章 Spring Boot 简介 讲解Spring Boot的项目背景,已经与其他技术框架(比如,Spring、SpringMVC、SpringCloud等)的关系。简单介绍下Spring Boot 整个生态系统 第2章 开启 Spring Boot 的第一个 Web 项目 通过 Spring Initializr 来快速初始化一个 Spring Boot 原型,方便学员来极速体验Spring Boot。本课程也将会采用Gradle作为项目管理工具,让学员掌握最前瞻的构建工具。通过探索项目让学员了解项目的结构,已经相关的配置原理。 第3章 一个Hello World项目 本章是正式开始动手敲代码了。依照惯例,会先编写一个最简单的Hello World程序。从项目配置,应用的编写,再到测试用例,最后运行项目。方面学员了解整个编码的流程。 第4章 开发环境的搭建 为了让实战过程更顺利,避免不要的问题,这里会先将课程所要求的环境进行一个讲解,并要求学员最好跟随课程的环境配置。本节也会讲解如何将项目导入IDE 来运行。 第5章 集成Thymeleaf模版引擎 Thymeleaf 方面的内容,知识点会讲解的相对全面点。Thymeleaf作为界面的模版引擎,对于界面的布局和实现起着非常关键的作用。本章节也会讲解Thymeleaf 如何与 Spring Boot 来进行集成。最后通过一个实战,来让学员更加深刻的理解Thymeleaf。… 第6章 数据持久化Spring Data JPA 本章节涉及数据的持久化。从JPA规范讲起,到Spring对于JPA的用法以及与Hibernate集成实现。本课程的数据库采用MySQL,但也可以方便切换到其他数据库。最后通过一个实战内容,来帮助学员理解掌握。 第7章 全文搜索ElasticSearch 企业级应用中,难免会涉及到全文搜素。对于Java应用来说,ElasticSearch在全文搜索方面是一把“利器”。本章节会将带领学员了解全文搜索的概念,并熟悉如何用ElasticSearch来实现全文搜索。 第8章 架构设计与分层 本章节讲解了系统的整体架构设计思路,包括如何来组织项目结构。让学员理解系统的数据流程。 第9章 集成 Bootstrap Bootsrap最大的好处是,可以让整个系统界面实现响应式布局。本节先从Bootstrap 的基本原理讲起,并将常用的前端框架比如 JQuery等进行集成。最后通过一个实战内容,来帮助学员理解掌握。 第10章 博客系统的需求分析与原型设计 本章节是对博客系统的需求分析与设计。对于企业级应用的完整流程来说,需求的分析与设计是必不可少的环节。本章节设计部分包含了原型设计、数据库设计及接口设计。 第11章 权限管理Spring Security Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,在企业级应用中被广泛使用。本章节不会对该框架做深入探讨,仅从基于角色的权限管理角度,来实现对系统的权限管理。 第12章 博客系统的整体框架实现 先对系统的整个界面、结构、布局、API进行实现,这样方便每个模块进行划分及实现。 第13章 博客系统的用户管理实现 对用户管理模块进行前后台的实现。 第14章 博客系统的角色管理实现 对用户角色理模块进行前后台的实现。 第15章 博客系统的权限管理实现 对用权限理模块进行前后台的实现。 第16章 博客系统的博客管理实现 对博客管理模块进行前后台的实现。 第17章 博客系统的评论管理实现 对评论管理模块进行前后台的实现。 第18章 博客系统的点赞管理实现 对用户点赞理模块进行前后台的实现。 第19章 博客系统的分类管理实现 对分类管理模块进行前后台的实现。 第20章 博客系统的标签管理实现 对标签管理模块进行前后台的实现。 第21章 博客系统的搜索实现 对搜索模块进行前后台的实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值