变量表达式 ${}
获取对象属性
th: value= "${user.id}"
选择变量表达式 *{}
先使用 ${ } 获取对象 th: object= "${user}"
在使用 获取对象的属性 th: value= "*{id}" 省略user
链接表达式 @{}
通过链接表达式@{ } 直接拿到应用路径,然后拼接静态资源路径
< script th: src= "@{/webjars/jquery/jquery.js}" > < / script>
< link th: href= "@{/webjars/bootstrap/css/bootstrap.css}" rel= "stylesheet" type= "text/css" >
片段表达式 ~{}
1. 首先通过th: fragment定制片段
< ! -- / views/ common/ head. html-- >
< head th: fragment= "static" >
< script th: src= "@{/webjars/jquery/3.3.1/jquery.js}" > < / script>
< / head>
2. 通过th: replace 填写片段路径和片段名
< ! -- / views/ your. html -- >
< div th: replace= "~{common/head::static}" > < / div>
or 一般可以去掉表达式外壳
< div th: replace= "common/head::static" > < / div>
表示将引用${ spring. thymeleaf. prefix} / common/ head. html的static 页面片段
替换路径默认会拼接前缀路径,所以开头切勿在添加斜杠
spring:
thymeleaf:
prefix: classpath: / views/ #调整页面路径
~ { viewName } 表示引入完整页面
~ { viewName : : selector} 表示在指定页面寻找片段 其中selector可为片段名、jquery选择器等
~ { : : selector} 表示在当前页寻找
消息表达式 #{}
通常的国际化属性:#{ msg} 用于获取国际化语言翻译值
< title th: text= "#{user.title}" > < / title>
其他表达式
默认支持字符串连接、数学运算、布尔逻辑和三目运算等
< input name= "name" th: value= "${'I am '+(user.name!=null?user.name:'NoBody')}" / >
内置对象
7个基础对象
${ #ctx} 上下文对象,可用于获取其它内置对象。
${ #vars} : 上下文变量。
${ #locale} :上下文区域设置。
${ #request} : HttpServletRequest对象。
${ #response} : HttpServletResponse对象。
${ #session} : HttpSession对象。
${ #servletContext} : ServletContext对象。
工具类
#strings:字符串工具类
#lists:List 工具类
#arrays:数组工具类
#sets:Set 工具类
#maps:常用Map方法。
#objects:一般对象类,通常用来判断非空
#bools:常用的布尔方法。
#execInfo:获取页面模板的处理信息。
#messages:在变量表达式中获取外部消息的方法,与使用#{ . . . } 语法获取的方法相同。
#uris:转义部分URL / URI的方法。
#conversions:用于执行已配置的转换服务的方法。
#dates:时间操作和时间格式化等。
#calendars:用于更复杂时间的格式化。
#numbers:格式化数字对象的方法。
#aggregates:在数组或集合上创建聚合的方法。
#ids:处理可能重复的id属性的方法。
迭代循环
th: eache
< div th: each= "user:${userList}" >
账号:< input th: value= "${user.username}" / >
密码:< input th: value= "${user.password}" / >
< / div>
通过状态变量stat 可以获得集合的下标, 序号, 总数, 单双行, 是否第一/ 最后
< div th: each= "user,stat:${userList}" th: class = "${stat.even}?'even':'odd'" >
下标:< input th: value= "${stat.index}" / >
序号:< input th: value= "${stat.count}" / >
账号:< input th: value= "${user.username}" / >
密码:< input th: value= "${user.password}" / >
< / div>
条件判断
用于动态页面的初始化
< div th: if = "${userList}" >
< div> 的确存在. . </ div>
< / div>
取反
< div th: unless= "${userList}" >
< div> 不存在. . </ div>
< / div>
日期格式化
默认的日期格式( toString方法) Mon Oct 03 19 : 32 : 50 CST 2020
< input type= "text" th: value= "${user.createTime}" / >
时间工具类#dates来对日期进行格式化:2020 - 07 - 06 19 : 32 : 50
< input type= "text" th: value= "${#dates.format(user.createTime,'yyyy-MM-dd HH:mm:ss')}" / >
内联写法 [[#{xx}]]
JS无法获取服务端返回的变量
可以读取服务端变量,也可以调用内置对象的方法。例如获取用户变量和应用路径
< script th: inline= "javascript" >
var user = [ [ ${ user} ] ] ; `
var APP_PATH = [ [ ${ #request. getContextPath ( ) } ] ] ;
var LANG_COUNTRY = [ [ ${ #locale. getLanguage ( ) + '_' + #locale. getCountry ( ) } ] ] ;
< / script>