- 可以对表达式或变量进行计算求值;
- 可以使用“+”进行文本拼接;
- 可以获取后端传过来的request作用域中的数据(包括Model、ModelAndView作用域)
- 如果文本中包含有HTML标签,不会对其进行解析。
此标签与th:text标签功能几乎一样,唯一不同就是,如果文本中包含有HTML标签,会对其进行解析,并响应到客户端。
3、#{...}#{}表达式的作用是从外部文件获取值,通常是key/value形式的property文件。它的强大在于通过简单的 *** 作,就可以处理应用程序国际化的问题。(通常搭配着th:text使用)
4、${...}它的作用是从thymeleaf上下文获取指定变量的值
${}的预定义变量thymeleaf提供了一些预定义变量param、session和application,使用${}可以方便地获取这些变量的值:
- 获取当前名称为x的请求参数:${param.x}
- 获取当前session中名称为x的属性:${session.x}
- 获取当前ServletContext中名称为x的属性:${application.x}
可见,如果变量是一个对象的话,${}还可以通过点语法获取对象的属性值。如果要获取的属性是一个私有字段,则它必须提供一个get方法,否则属性值获取失败。
5、*{...}星号表达式与上文中的$表达式功能大致相同,二者最大的区别是:星号语法对选定对象而不是整个上下文的表达式求值。也就是说,只要没有选中的对象,美元和星号的语法就完全一样。
eg:
Name: Sebastian.
Surname: Pepper.
Nationality: Saturn.
这完全等同于:
Name: Sebastian.
Surname: Pepper.
Nationality: Saturn.
当然,美元和星号语法可以混合使用。
6、@{...}
@{}这个是thymeleaf中的链接,与th:src或th:href一起使用
view
view
view
注意:
-
th:href
是修饰符属性:一旦处理,它将计算要使用的链接 URL 并将该值设置为标记的href
属性。 -
我们可以对 URL 参数使用表达式(如您在 中所见
orderId=${o.id}
)。所需的 URL 参数编码 *** 作也将自动执行。 -
如果需要多个参数,这些参数将用逗号分隔:
@{/order/process(execId=${execId},execType='FAST')}
-
URL 路径中也允许使用变量模板:
@{/order/{orderId}/details(orderId=${orderId})}
-
/
以(eg: )开头的相对 URL/order/details
将自动以应用程序上下文名称为前缀。 -
如果 cookie 未启用或未知,则
";jsessionid=..."
可能会在相对 URL 中添加后缀,以便保留会话。这称为URL 重写response.encodeURL(...)
,Thymeleaf 允许您通过使用Servlet API 中的机制为每个 URL插入自己的重写过滤器。 -
该
th:href
属性允许我们(可选地)在我们的模板中有一个有效的静态href
属性,以便我们的模板链接在直接打开用于原型设计时仍然可以由浏览器导航。
该表达也可以与其他表达式结合使用:
eg:
view
view
7、附加文本与文字替换 7.1、附加文本
文本,无论是文字还是评估变量或消息表达式的结果,都可以使用+
运算符轻松附加:
7.2、文字替换
文字替换允许轻松格式化包含来自变量的值的字符串,而无需在文字后面附加'...' + '...'
.
这些替换必须用竖线 ( |
) 包围,例如:
这相当于:
文字替换可以与其他类型的表达式组合:
在文字替换中只允许使用变量/消息表达式 ( ${...}
, *{...}
, )。没有其他文字 ( )、布尔/数字标记、条件表达式等。#{...}
|...|
'...'
8、算术运算
还可以使用一些算术运算:+
、-
、*
和。/
%
请注意,其中一些运算符存在文本别名:( div
) /
、mod
( %
)。
表达式中的值可以与>
, <
, >=
and<=
符号进行比较,==
and!=
运算符可用于检查是否相等(或不相等)。请注意,XML 规定<和>符号不能用于比较符号,我们应该使用<和>进行替换。
其它比较符号的别名如下:
10、条件表达式
gt
(>
),lt
(<
),ge
(>=
),le
(<=
),not
(!
),eq
(==
),neq
/ne
(!=
).
语法:条件?then : else
...
条件表达式可以是变量 ( ${...}
, *{...}
)、消息 ( #{...}
)、URL ( @{...}
) 或文字 ( '...'
)。
条件表达式也可以使用括号嵌套:
...
也可以省略其他表达式,在这种情况下,如果条件为假,则返回空值:
...
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)