codestory

Verwenden von Thymeleaf th:object und asterisk-syntax *{}

  1. th:object  und die Syntax Asterisk
  2. Spring Boot Form

1. th:object  und die Syntax Asterisk

Im Thymeleaf hat eine Ausdruck Variable (variable expression) die Syntax ${ }. Außerdem wird die Ausdruck *{ } sehr oft verwendet. In dieser Unterricht werden wir es studieren..
Die Syntax Sternchen (Asterisk Syntax) bewertet die Ausdrücke in die gewählten Objekte lieber als in die ganzen Kontext. Um ein Objekt zu wählen, benutzen Sie das Attribut th:object. Sehen Sie ein einfaches Beispiel wie folgend:
(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>
Es ist exakt äquivalent mit:
(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>
Und natürlich können Sie die Sytax Asterisk und die Syntax Dollar miteinander mischen, zum Beispiel:
(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>
Was passiert wenn Sie kein Objekt wählen aber die Syntax Asterisk *{ } benutzen. In diesen Fall funktionieren ${ } und *{ } gleich.
<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

Im Spring Boot treffen Sie bei der Behandlung von Form sehr oft die Syntax Asterisk:

(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>