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.