Использование Thymeleaf th:object и синтаксиса asterisk *{ }

View more Tutorials:

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>
Смотрите так же:

View more Tutorials: