获取一级变量
例如:student.name
使用${},或者 *{} 都可以
th:text="${student.name}" th:text="*{student.name}"
选择变量表达式*{...}
是另一种类似${...}
,表示变量的方法,但是选择变量表达式在执行时是在选择的对象上求解,而${...}
是在上下文的变量Map上求解。
不存在选择对象的时候,${...}
和*{...}
等价
获取多级变量
例如 :student.address.province 时有三种方式
第一种:直接连点
th:text="${student.address.province}" th:text="*{student.address.province}"
第二种:使用th:object 先确定选择对像 , 然后使用*{} ,在选择对象上选取
th:object="${student.address}"
th:text="*{province}"
第三种:使用 th:with 定义局部变量,然后通过${} 选取局部变量
th:with="address = ${student.address}"
th:text="${address.province}"
第三种因为th:with定义的是局部变量,所以要注意定义的位置。位置定义错了就取不到了。
参考: Thymeleaf选择变量表达式
Thymeleaf 之 内置对象、定义变量、URL参数及标签自定义
-------2017.11.23更新
关于变量使用${}原理的解释
这来自官方文档,e....劝大家还是看看官方文档,全面可靠!