首页 > 解决方案 > th:field="${something}" 和 th:field="*{something}" 有什么区别?

问题描述

我是 thymeleaf 的新手,我不明白 和 之间的th:field="${something}"区别th:field="*{something}"。什么时候用*,什么时候用$?

标签: spring-bootthymeleaf

解决方案


引用百里香文档

变量表达式不仅可以写成 ${...} 表达式,还可以写成 *{...} 表达式。

但是有一个重要的区别:星号语法评估选定对象上的表达式,而不是整个上下文变量映射。这就是:只要没有选中的对象,美元和星号的语法就完全一样。

此处4.3 选择表达式(星号语法)部分开始。

从技术上讲,不同之处在于,如果您选择了这样的对象,th:object="${session.user} 那么您可以使用 * 作为用户对象的属性,就像这样th:text="*{lastName}"

如果您尚未选择对象,它们是相同的。


推荐阅读