Использование Thymeleaf th:object и синтаксиса asterisk *{ }
1. th:object и синтаксис Asterisk
В Thymeleaf выражение переменной (variable expression) имеет синтаксис ${ }. Помимо этого *{ } это так же часто используемое выражение переменной, в данной статье мы изучим его.
Синтаксис звездочки (Asterisk Syntax) оценивает выражения на выбранных объектах, а не на весь контекст. Для выбора объекта вы используете атрибут th:object. Смотрите простой пример ниже:
(Asterisk syntax)
<div th:object = "${person}" class="box">
<p><b>Full Name:</b> <span th:utext="*{fullName}"></span></p>
<p><b>Email:</b> <span th:utext="*{email}"></span></p>
</div>
Он точно равен:
(Dollar syntax)
<div class="box">
<p><b>Full Name:</b> <span th:utext="${person.fullName}"></span></p>
<p><b>Email:</b> <span th:utext="${person.email}"></span></p>
</div>
И конечно вы можете смешать синтаксис звездочки (Asterisk syntax) и синтаксис доллара (Dollar syntax) друг с другом, например:
(Mix syntax)
<div th:object = "${person}" class="box">
<p><b>Full Name:</b> <span th:utext="*{fullName}"></span></p>
<p><b>Email:</b> <span th:utext="${person.email}"></span></p>
</div>
Что происходит, когда вы не выбираете ни один объект, но используете синтаксис звездочки *{ }. В данном случае ${ } и *{ } работают одинаково.
<div class="box">
<p><b>Full Name:</b> <span th:utext="*{person.fullName}"></span></p>
<p><b>Email:</b> <span th:utext="*{person.email}"></span></p>
</div>
<!--/* Same as: */-->
<div class="box">
<p><b>Full Name:</b> <span th:utext="${person.fullName}"></span></p>
<p><b>Email:</b> <span th:utext="${person.email}"></span></p>
</div>
2. Spring Boot Form
В Spring Boot, при обработке Form вы часто встречаете синтаксис звездочки (Asterisk Syntax):
(Form)
<form th:action="@{/register}" th:object="${appUserForm}" method="POST">
User Name:
<input type="text" th:field="*{userName}" />
<br/> Password:
<input type="password" th:field="*{password}" />
<br/> Confirm:
<input type="password" th:field="*{confirmPassword}" />
<br/> Email:
<input type="text" th:field="*{email}" />
<br/>
<input type="submit" value="Submit" />
</form>
Pуководства Thymeleaf
- Оператор Elvis в Thymeleaf
- Цикл в Thymeleaf
- Условные операторы if, unless, switch в Thymeleaf
- Предопределенные объекты в Thymeleaf
- Использование Thymeleaf th:class, th:classappend, th:style, th:styleappend
- Введение в Thymeleaf
- Переменные (Variables) в Thymeleaf
- Использование Fragments в Thymeleaf
- Используйте Layout в Thymeleaf
- Использование Thymeleaf th:object и синтаксиса asterisk *{ }
- Пример Thymeleaf Form Select option
Show More