定义后台控制器路径,类似标签的action属性。
对象遍历,功能类似jstl中的标签。
常用于表单字段绑定。通常与th:object一起使用。 属性绑定、集合绑定。
div id声明,类似html标签中的id属性。
<div class="student" th:id = "stu+(${rowStat.index}+1)">div>
定义超链接。value形式为@{/logout}
<a th:href="@{/logout}" class="signOut">a>
条件判断。
if="${rowStat.index} == 0">... do something ...
声明定义该属性的div为模板片段,常用与头文件、页尾文件的引入。常与th:include,th:replace一起使用。
<div th: fragment=" copy" >
© 2011 The Good Thymes Virtual Grocery
div>
<div th: include=" /templates/footer : : copy" >div>
<div th: replace=" /templates/footer : : copy" >div>
用于表单数据对象绑定,将表单绑定到后台controller的一个JavaBean参数。常与th:field一起使用进行表单数据绑定。
public class LoginBean implements Serializable{...}
@RequestMapping(value = "/login", method = RequestMethod.POST)
public String login(@ModelAttribute(value = "loginBean") LoginBean loginBean) {...}
用于外部资源引入,类似于
<script th:src="@{/resources/js/jquery/jquery.json-2.4.min.js}"
文本显示。
<td class="text" th:text="${username}" >td>
用于标签复制,类似标签的value属性。
<option th:value="Adult">Adultoption>
"msg" type="hidden" th:value="${msg}" />
变量表达式(美元表达式,哈哈),用于访问容器上下文环境中的变量,功能同jstl中${}。
<p><span th:text="${helloword}">span>p>
选择表达式(星号表达式)。选择表达式与变量表达式有一个重要的区别:选择表达式计算的是选定的对象,而不是整个环境变量映射。也就是:只要是没有选择的对象,选择表达式与变量表达式的语法是完全一样的。那什么是选择的对象呢?是一个:th:object对象属性绑定的对象。
<div th: object=" ${session. user}" >
<p>Name: <span th: text=" *{firstName}" >Sebastianspan>. p>
<p>Surname: <span th: text=" *{lastName}" >Pepperspan>. p>
<p>Nationality: <span th: text=" *{nationality}" >Saturnspan>. p>
div>
上例中,选择表达式选择的是th:object对象属性绑定的session. user对象中的属性。
消息表达式(井号表达式,资源表达式)。通常与th:text属性一起使用,指明声明了th:text的标签的文本是#{}中的key所对应的value,而标签内的文本将不会显示。
新建/WEB-INF/templates/home.html
text=" #{home. welcome}" >This text will not be show!
新建/WEB-INF/templates/home.properties
home.welcome=this messages is from home.properties!
从测试结果可以看出,消息表达式通常用于显示页面静态文本,将静态文本维护在properties文件中也方面维护,做国际化等。
超链接url表达式。
<script th:src="@{/resources/js/jquery/jquery.json-2.4.min.js}"
工具对象表达式。常用于日期、集合、数组对象的访问。这些工具对象就像是java对象,可以访问对应java对象的方法来进行各种操作。
<div th:if="${#maps.size(stuReqBean.students[__${rowStat.index}__].score) != 0}">
<label>${score.key}:label><input type="text" th:value="${score.value}">input>
div>
<div th:if="${#maps.isEmpty(stuReqBean.students[__${rowStat.index}__].score)}">
div>