thymeleaf

Posted zhangxiaohu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thymeleaf相关的知识,希望对你有一定的参考价值。

Thymeleaf是什么

Thymeleaf是?向Web和独?环境的现代服务器端Java模板引擎, 能够处理html, XML, javascript, CSS甚?纯?本。 

<html xmlns:th="http://www.thymeleaf.org"> 

获取属性 

$ x将返回存储在Thymeleaf上下?中的变量x或作为请求属性。
$ param.x将返回?个名为x的请求参数(可能是多值的) 。
$ session.x将返回?个名为x的会话属性。
$ application.x将返回?个名为xservlet上下?属性。 

标准表达式

简单表达式

变量表达式$ ...
选择变量表达式\\* ...
消息表达式: #...
链接?址表达式@ ...
?段表达式: ?...

文字

?字‘one text‘ , ‘Another one!‘
数字字?值0,34,3.0,12.3...
布尔?字truefalse
空字?值null
?字Tokenonesometextmain...

文本操作:

字符串连接+
?本替换|The name is $name|

算术运算符

?进制运算符+-\\*/%
负号(?元运算符)-

布尔运算符

?进制运算符and or
布尔否定(?元运算符) : ! , not

比较和相等运算符:

?较运算符><> =<=gtltgele
相等运算符==, ! =eqne

条件运算符

If-then:\\(if\\) ? \\(then\\)
If-then-else:\\(if\\) ? \\(then\\) : \\(else\\)
Default:\\(value\\) ?: \\(defaultvalue\\)

特殊符号:

哑操作符: \\_

 

所有这些功能可以组合和嵌套:

‘User is of type ‘ + ($user.isAdmin() ? ‘Administrator‘: ($user.type ?: ‘Unknown‘)) 

th:text  

<p th:text="#home.welcome">Welcome to our grocery store!</p> 

spring: messages: basename: i18n
/hello

th:utext

<p th:utext="#home.welcome">Welcome to our grocery store!</p>

?具表达式对象

#execInfo: 有关正在处理的模板的信息。
#messages: ?于在变量表达式中获取外部化消息的?法, 与使?#...语法获得的?式相同。
#uris: 转义URL / URI部分的?法
#conversions: 执?配置的转换服务(如果有的话) 的?法。
#datesjava.util.Date对象的?法: 格式化, 组件提取等
#calendars: 类似于#dates, 但对于java.util.Calendar对象。
#numbers: ?于格式化数字对象的?法。
#stringsString对象的?法: containsstartsWithprepending /appending
#objects: ?般对象的?法。
#bools: 布尔评估的?法。
#arrays: 数组的?法。
#lists: 列表的?法。
#sets: 集合的?法。
#maps: 地图?法。
#aggregates: 在数组或集合上创建聚合的?法。
#ids: 处理可能重复的id属性的?法(例如, 作为迭代的结果) 。

星号语法

<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>

URL链接

<!-- Will produce ‘http://localhost:8080/gtvg/order/detail
s?orderId=3‘ (plus rewriting) -->
<a href="details.html" th:href="@http://localhost:8080/gtvg/order/details(orderId=$o.id)">view</a>
<!-- Will produce ‘/gtvg/order/details?orderId=3‘ (plus rewriting) -->
<a href="details.html" th:href="@/order/details(orderId=$o.id)">view</a>
<!-- Will produce ‘/gtvg/order/3/details‘ (plus rewriting)-->
<a href="details.html" th:href="@/order/orderId/details(orderId=$o.id)">view</a>

?本替换

<span th:text="|Welcome to our application, $user.name!|">

哑操作符号

<span th:text="$user.name ?: _">no user authenticated</span>

if/unless

<a th:href="@/login" th:unless=$session.user != null>Login</a>

switch

 
<div th:switch="$user.role">
  <p th:case="‘admin‘">User is an administrator</p>
  <p th:case="#roles.manager">User is a manager</p>
  <p th:case="*">User is some other thing</p>
</div>
 

th:each

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>hello</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
    <!-- 不存在则忽略,显示hello null!(可以通过默认值进行设置)-->
    <p th:text="‘Hello ‘ + ($name?:‘admin‘)">3333</p>
    <table>
        <tr>
            <th>ID</th>
            <th>NAME</th>
            <th>AGE</th>
        </tr>
        <tr th:each="emp : $empList">
            <td th:text="$emp.id">1</td>
            <td th:text="$emp.name"></td>
            <td th:text="$emp.age">18</td>
        </tr>
    </table>
</body>
</html>

常用标签

技术图片

 




 

 




 

以上是关于thymeleaf的主要内容,如果未能解决你的问题,请参考以下文章

Thymeleaf,片段和默认参数

Thymeleaf引用片段传入参数

Spring MVC 3.2 Thymeleaf Ajax 片段

thymeleaf引入公共页面的某个片段

11SpringBoot-CRUD-thymeleaf公共页面元素抽取

Thymeleaf 模板 - 有没有办法装饰模板而不是包含模板片段?