Versteckte Eingänge mit Feder und Thymeleaf verwenden

1. Einleitung

Thymeleaf ist eine der beliebtesten Template-Engines im Java-Ökosystem. Es ermöglicht uns, Daten aus unseren Java-Anwendungen einfach zum Erstellen dynamischer HTML-Seiten zu verwenden.

In diesem Tutorial werden verschiedene Möglichkeiten zur Verwendung versteckter Eingaben mit Spring und Thymeleaf vorgestellt.

2. Thymeleaf mit HTML-Formularen

Bevor wir uns mit der Arbeit mit versteckten Feldern befassen, gehen wir einen Schritt zurück und schauen uns an, wie Thymeleaf im Allgemeinen mit HTML-Formularen funktioniert.

Der häufigste Anwendungsfall ist die Verwendung eines HTML-Formulars, das direkt einem DTO in unserer Anwendung zugeordnet ist .

Angenommen, wir schreiben eine Blog-Anwendung und haben ein DTO, das einen einzelnen Blog-Beitrag darstellt:

class BlogDTO { long id; String title; String body; String category; String author; Date publishedDate; }

Wir können ein HTML-Formular verwenden, um mit Thymeleaf und Java eine neue Instanz dieses DTO zu erstellen:

Beachten Sie, dass die Felder in unserem DTO für Blog-Posts einer einzelnen Eingabe im HTML-Formular zugeordnet sind. Dies funktioniert in den meisten Fällen gut, aber welche Felder sollten nicht bearbeitet werden können? Hier können versteckte Eingaben helfen.

Beispielsweise verfügt jeder Blog-Beitrag über ein eindeutiges ID-Feld, das Benutzer nicht bearbeiten dürfen. Mit versteckten Eingaben können wir das ID-Feld an das HTML-Formular übergeben, ohne dass es angezeigt oder bearbeitet werden kann .

3. Verwenden des Attributs th: field

Der schnellste Weg, einer versteckten Eingabe einen Wert zuzuweisen, ist die Verwendung des Attributs th: field :

Dies ist der einfachste Weg, da wir das value-Attribut nicht angeben müssen, es jedoch in älteren Versionen von Thymeleaf möglicherweise nicht unterstützt wird .

4. Verwenden Sie das Attribut th: attr

Die nächste Möglichkeit, versteckte Eingaben mit Thymeleaf zu verwenden, ist die Verwendung des integrierten Attributs th: attr :

In diesem Fall müssen wir das ID- Feld mithilfe des Blog- Objekts referenzieren .

5. Verwendung des Namens Attribut

Ein anderer , weniger ausführlicher Ansatz ist es, das Standard - HTML verwenden Namen Attribut:

Es basiert ausschließlich auf Standard-HTML-Attributen. In diesem Fall müssen wir auch das ID- Feld mithilfe des Blog- Objekts referenzieren .

6. Fazit

In diesem Tutorial haben wir uns verschiedene Möglichkeiten angesehen, versteckte Eingaben mit Thymeleaf zu verwenden. Dies ist eine nützliche Technik, um schreibgeschützte Felder aus unseren DTOs in HTML-Formulare zu übergeben.

Wie immer finden Sie alle in diesem Tutorial verwendeten Codebeispiele auf Github.