记一个项目中使用到 thymleaf 的经历(含内置对象和内置工具类的汇总)

本文详细介绍了Thymeleaf模板引擎的使用方法,包括变量表达式、条件判断、循环遍历、内置工具对象的使用及表达式语法。同时,讲解了如何处理日期格式化、国际化内容获取、URL定义等常见需求。

一、有关thymleaf的几个常用的知识点

 springboot thymleaf 中 @、$、~的区别  

thymleaf 的 官方文档 链接

二、其他的一些信息

   东西有点杂,看了很多资料整理总结的

1、接收信息

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

2、判断条件

<span class="label label-default" th:if="${allDeviceLists.status == 0 }">无效</span>
<span class="label label-default" th:unless="${allDeviceLists.status ge 1 }">有效</span>

3、遍历

<tr th:each="allDeviceLists,deviceStatus:${allDeviceLists}">
    <!-- 序号 -->
    <td th:text="${deviceStatus.count}"></td>
    <!-- 遍历list<Map> 集合中  对象的属性值 -->
    <td th:text="${allDeviceLists.name}"></td>
<tr>

deviceStatus  只是遍历起的一个变量,包含像序号等信息

状态变量有以下几个属性: 采纳于  链接

  • index:当前迭代对象的index(从0开始计算)
  • count: 当前迭代对象的index(从1开始计算)
  • size:被迭代对象的大小
  • current:当前迭代变量
  • even/odd:布尔值,当前循环是否是偶数/奇数(从0开始计算)
  • first:布尔值,当前循环是否是第一个
  • last:布尔值,当前循环是否是最后一个
    当然,user和userStat可以自己定义名字,如果没定义状态变量,那么thymleaf会自动给一个“变量名+Stat”。

 4、内置工具对象的使用

只简单写一个日期转换的

<td th:text="${#dates.format(allDeviceLists.createTime,'yyyy-MM-dd HH:mm:ss')}"></td>

5 、表达式

Simple expressions:(表达式语法) 
    Variable Expressions: ${...}:获取变量值;OGNL; 
        1)、获取对象的属性、调用方法 
        2)、使用内置的基本对象: 
            #ctx : the context object. 
            #vars: the context variables. 12345678910111212345
            #vars: the context variables. 
            #locale : the context locale. 
            #request : (only in Web Contexts) the HttpServletRequest object. 
            #response : (only in Web Contexts) the HttpServletResponse object. 
            #session : (only in Web Contexts) the HttpSession object. 
            #servletContext : (only in Web Contexts) the ServletContext object. ${session.foo} 
        3)、内置的一些工具对象: 
            #execInfo : information about the template being processed. 
            #messages : methods for obtaining externalized messages inside variables expressions, in the same way as they would be obtained using #{…} syntax. 
            #uris : methods for escaping parts of URLs/URIs 
            #conversions : methods for executing the configured conversion service (if any). 
            #dates : methods for java.util.Date objects: formatting, component extraction, etc. 
            #calendars : analogous to #dates , but for java.util.Calendar objects. 
            #numbers : methods for formatting numeric objects. 
            #strings : methods for String objects: contains, startsWith, prepending/appending, etc. 
            #objects : methods for objects in general. 
            #bools : methods for boolean evaluation. 
            #arrays : methods for arrays. 
            #lists : methods for lists. 
            #sets : methods for sets. 
            #maps : methods for maps. 
            #aggregates : methods for creating aggregates on arrays or collections. 
            #ids : methods for dealing with id attributes that might be repeated (for example, as a result of an iteration). 

Selection Variable Expressions: *{...}:选择表达式:和${}在功能上是一样; 
    补充:配合 th:object="${session.user}: 
<div th:object="${session.user}"> 
    <p>Name: <span th:text="*{firstName}">Sebastian</span>.</p> 
    <p>Surname: <span th:text="*{lastName}">Pepper</span>.</p> 
    <p>Nationality: <span th:text="*{nationality}">Saturn</span>.</p> 
</div> 


Message Expressions: #{...}:获取国际化内容 
Link URL Expressions: @{...}:定义URL; @{/order/process(execId=${execId},execType='FAST')} 
Fragment Expressions: ~{...}:
片段引用表达式 
<div th:insert="~{commons :: main}">...</div> 


Literals(字面量) 
Text literals: 'one text' , 'Another one!' ,… 
Number literals: 0 , 34 , 3.0 , 12.3 ,… 
Boolean literals: true , false 
Null literal: null 
Literal tokens: one , sometext , main ,… 

Text operations:(文本操作) 
String concatenation: + 
Literal substitutions: |The name is ${name}| 
Arithmetic operations:(数学运算)
Binary operators: + , ‐ , * , / , % 

Minus sign (unary operator): ‐ 
Boolean operations:(布尔运算) 
    Binary operators: and , or 
    Boolean negation (unary operator): ! , not 
Comparisons and equality:(比较运算) 
    Comparators: > , < , >= , <= ( gt , lt , ge , le ) 
    Equality operators: == , != ( eq , ne ) 
Conditional operators:条件运算(三元运算符) 
    If‐then: (if) ? (then) 
    If‐then‐else: (if) ? (then) : (else) 
    Default: (value) ?: (defaultvalue) 
Special tokens: 
    No‐Operation: _

补充知识点:

lt:less than 小于
le:less than or equal to 小于等于
eq:equal to 等于
ne:not equal to 不等于
ge:greater than or equal to 大于等于
gt:greater than 大于

 

Thymeleaf内置了一系列工具类,用于在web环境中使用Thymeleaf时方便地访问请求参数、会话属性应用程序属性。其中,使用param工具类可以获取请求参数的值。例如,param.paramName可以获取名为paramName的请求参数的值。 另外,Thymeleaf还提供了application工具类,可以用于检索应用程序或servlet上下文属性。通过使用application工具类,我们可以获取ServletContext属性的值。例如,${application.foo}可以检索ServletContext属性'foo'的值。此外,我们还可以使用application工具类的其他方法,如application.size()、application.isEmpty()application.containsKey('foo')来操作应用程序属性。 在web环境中,还可以直接访问request对象来获取请求相关的属性信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [thymeleaf其他的内置工具(共16种)](https://blog.youkuaiyun.com/lgclgc666/article/details/105171348)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Thymeleaf系列【9】内置工具类及对象](https://blog.youkuaiyun.com/qq_43437874/article/details/118965490)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值