必看Thymeleaf知识点

变量表达式 ${}

获取对象属性
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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值