Was ist Thymeleaf und warum wird es benötigt?
Thymeleaf ist eine moderne serverseitige Template-Engine für Java-Anwendungen, die zur Generierung von HTML, XML, JavaScript, CSS und Textdateien entwickelt wurde. Im Gegensatz zu JSP (JavaServer Pages) bietet Thymeleaf eine sauberere, lesbarere und natürlichere Syntax, die sowohl für Entwickler als auch für Designer leicht verständlich ist.
Der Hauptvorteil von Thymeleaf liegt darin, dass seine Vorlagen gültige HTML-Dokumente sind. Das bedeutet, Sie können eine Vorlage im Browser öffnen, ohne den Server zu starten, und ihre Struktur sehen. Dynamische Daten werden über spezielle Attribute eingefügt, die mit dem Präfix th: beginnen.
Thymeleaf lässt sich hervorragend in das Spring Framework (insbesondere Spring Boot) integrieren, kann aber auch als eigenständige Bibliothek verwendet werden. Es unterstützt Layouts, Fragmente, Bedingungen, Schleifen, Formularverarbeitung, Internationalisierung (i18n) und vieles mehr.
Thymeleaf Installation
Da Thymeleaf eine Java-Bibliothek ist, wird sie über Abhängigkeitsverwaltungssysteme wie Maven oder Gradle installiert. Ein Äquivalent zu pip install gibt es für Java nicht.
Installation mit Maven (pom.xml)
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf</artifactId>
<version>3.1.2.RELEASE</version>
</dependency>
Installation mit Gradle (build.gradle)
implementation 'org.thymeleaf:thymeleaf:3.1.2.RELEASE'
Für Spring Boot (empfohlen)
Wenn Sie Spring Boot verwenden, fügen Sie einfach den Starter hinzu:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
Spring Boot konfiguriert Thymeleaf automatisch mit sinnvollen Standardeinstellungen.
Schnellstart mit Codebeispiel
Erstellen wir eine einfache Konsolenanwendung, die Thymeleaf zur HTML-Generierung verwendet.
Schritt 1: Vorlage erstellen (src/main/resources/templates/hello.html)
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Hallo Thymeleaf</title>
</head>
<body>
<h1 th:text="${message}">Standardnachricht</h1>
<p>Aktuelles Datum: <span th:text="${#dates.format(#dates.createNow(), 'dd-MM-yyyy')}">01-01-2024</span></p>
</body>
</html>
Schritt 2: Java-Code zur Verarbeitung der Vorlage schreiben
import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;
import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver;
public class ThymeleafSchnellstart {
public static void main(String[] args) {
// 1. Template-Resolver konfigurieren
ClassLoaderTemplateResolver resolver = new ClassLoaderTemplateResolver();
resolver.setPrefix("/templates/");
resolver.setSuffix(".html");
resolver.setTemplateMode("HTML");
// 2. Template-Engine erstellen
TemplateEngine engine = new TemplateEngine();
engine.setTemplateResolver(resolver);
// 3. Kontext mit Daten erstellen
Context context = new Context();
context.setVariable("message", "Hallo, Thymeleaf!");
// 4. Vorlage verarbeiten
String result = engine.process("hello", context);
System.out.println(result);
}
}
Ausgabe:
<!DOCTYPE html>
<html>
<head>
<title>Hallo Thymeleaf</title>
</head>
<body>
<h1>Hallo, Thymeleaf!</h1>
<p>Aktuelles Datum: <span>15-03-2024</span></p>
</body>
</html>
Wichtige Thymeleaf-Methoden und Funktionen
1. th:text — Textausgabe
Auch in der Bibliothek
Testen in TypeScript mit Vitest
ORM für TypeScript: Vergleich von Prisma, TypeORM und Drizzle – Codebeispiele
JSON-Verarbeitung in Swift: Codable, JSONSerialization und praktische Beispiele
Swagger/OpenAPI-Generierung für TypeScript: Bibliotheken und Werkzeuge
Arbeiten mit XML in PHP: Vollständiger Leitfaden zum Parsen und Erstellen von XML-Dokumenten
Empfehlungen
Auch in der Bibliothek
Testen in TypeScript mit Vitest
JSON-Verarbeitung in Swift: Codable, JSONSerialization und praktische Beispiele
Swagger/OpenAPI-Generierung für TypeScript: Bibliotheken und Werkzeuge
Arbeiten mit XML in PHP: Vollständiger Leitfaden zum Parsen und Erstellen von XML-Dokumenten