English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

SpringBoot Thymeleaf

Was ist Thymeleaf?

Thymeleaf ist eine Open-Source-Java-Bibliothek gemäß Apache-Lizenz2.0 lizenziert. Dies ist eine HTML5/XHTML/XML Template-Engine. Es wird für Web-(Servlet-basiert) und nicht-Web-(Offline)-Umgebungen Serverseitige Java-TemplatesMotor. Für modernes HTML5 Für die JVM-Web-Entwicklung ist es eine perfekte Wahl. Es bietet eine vollständige Integration mit dem Spring Framework.

Es wendet eine Reihe von Konvertierungen auf die Template-Dateien an, um die von der Anwendung generierten Daten oder Texte anzuzeigen. Es ist geeignet für die Bereitstellung von XHTML in Webanwendungen./HTML5.

Thymeleaf zielt darauf ab, eine modernund gut formatiertArt der Template-Erstellung basiert auf XML-Tags und -Attributen. Diese XML-Tags definieren die Ausführung vorgegebener Logik auf dem DOM (Document Object Model), anstatt diese Logik als Code im Template ausdrücklich zu schreiben. Es ersetzt JSP .

Die Architektur von Thymeleaf ermöglicht es, Templates zu schnell Verarbeitung, abhängig von der Cache-Resolution der Dateien. Es verwendet während der Ausführung den geringsten I/O-Operation.

Warum verwenden wir Thymeleaf?

JSP ist mehr oder weniger ähnlich wie HTML. Aber es ist nicht vollständig kompatibel mit HTML wie Thymeleaf. Wir können Thymeleaf-Template-Dateien im Browser normal öffnen und anzeigen, während JSP-Dateien nicht funktionieren.

Thymeleaf unterstützt Variable-Expressions wie Spring EL ($ {...}) und führt diese auf Modellattributen und Stern-Expressions aus(* {...}) wird auf Formular-Bean-Unterstützung ausgeführt, Hash-Expressions (#{...}) dienen für Internationalisierung, Link-Expressions (@{......)) überschreiben URLs.

Wie JSP kann Thymeleaf hervorragend für Rich HTML E-Mails verwendet werden.

Welches Muster kann Thymeleaf verarbeiten?

Thymeleaf kann sechs Arten von Mustern (auch bekannt als Mustermodus) wie folgt:

XML gültiges XML XHTML gültiges XHTML HTML5 altes HTML5

außer dem alten HTML5Außerhalb dieses Musters beziehen sich alle genannten Muster definiertes XML Datei. Dies ermöglicht es uns, HTML zu verarbeiten, das unabhängige Tags mit Attributen ohne Werte, Tags ohne Anführungszeichen oder andere Funktionen hat5Datei.

Um Dateien in diesem spezifischen Muster zu verarbeiten, führt Thymeleaf eine Konvertierung durch und wandelt Dateien in gut formatiertes XML Datei (gültiges HTML5Datei).

Hinweis: In Thymeleaf ist die Validierung nur für XHTML- und XML-Templates gültig.

Thymeleaf ermöglicht es uns auch, durch Angabe von zwei Modellen, um die Templates in diesem Modus zu解析en, unsere eigenen Schemata zu definieren. Auf diese Weise kann Thymeleaf effektiv alle Modelle verarbeiten, die als DOM-Baum modelliert werden können.

Standard Dialect

Thymeleaf ist ein Template-Engine, der es uns ermöglicht, ein Framework für DOM-Nodes zu definieren. DOM-Nodes, die im Template verarbeitet werden.

bezeichnet, die logische Anwendungen auf DOM-Nodes vornehmen. Processors. Eine Gruppe von Processoren und einige zusätzliche Artefakte werden als Dialect. Ein Dialect, der die Thymeleaf Core Library enthält, wird als Standard Dialect

Wenn wir die erweiterten Funktionen der Bibliothek nutzen möchten, während wir unsere eigenen Verarbeitungsschemata definieren, können wir unsere eigenen Dialects definieren. Einen eigenen Dialect. In der Template-Engine können wir mehrere Dialects gleichzeitig konfigurieren.

Thymeleaf Integration Package (thymeleaf-spring3und thymeleaf-spring4) definiert einen als SpringStandard Dialect Der Dialect. Der Standard Dialect und der SpringStandard sind fast identisch. Aber der Standard Dialect hat einige kleine Veränderungen, die es ermöglichen, bestimmte Funktionen des Spring-Frameworks besser zu nutzen.

Beispielsweise kann man das Spring Expression Language (SpEL) anstelle des StandardONGL (Object-Graph Navigation Language) von Thymeleaf verwenden.

Der Standard Dialect kann auf jede erdenkliche Weise Templates verarbeiten. Aber er ist besonders gut geeignet für webbasierte Template-Modelle (HTML5und XHTML). Es unterstützt und validiert die folgenden XHTML-Normen:

XHTML 1.0 Transitional Strict XHTML 1.0 XHTML 1.0 Frame Set XHTML 1.1.

Der Standard Dialect Processor ist ein Attribut Processor, der es dem Browser ermöglicht, HTML vor der Verarbeitung anzuzeigen5/XHTML-Template-Datei. Dies liegt daran, dass sie andere Attribute ignorieren.

Beispielsweise enthält eine JSP-Datei, wenn sie eine Tag Library verwendet, einen Code, der von den folgenden Browsern nicht angezeigt werden kann:

<form:inputText name="student.Name" value="${student.name}" />

Thymeleaf Standard Dialect ermöglicht es uns, mit folgendem Code die gleiche Funktion zu erreichen.

<input type="text" name="student Name" value="Thomas" th:value="${student.name}" />

Das obige Codebeispiel ermöglicht es uns auch, darin Definitionen vorzunehmen value Attribut( Thomas Beim Öffnen des Prototyps im Browser wird dieser Wert angezeigt. Während des Thymeleaf-Template-Verarbeitungsvorgangs wird dieses Attribut durch ${student.name} Wert durch die Berechnung des Wertes ersetzt.

Es ermöglicht Designern und Entwicklern, mit denselben Template-Dateien zu arbeiten. Dies reduziert die Arbeit, die erforderlich ist, um statische Prototypen in arbeitsfähige Template-Dateien umzuwandeln. Es wird als Natürliche Vorlagen.

Thymeleaf-Funktionen

Es kann sowohl in Netzwerkumgebungen als auch in nicht-netzwerkumgebungen verwendet werden. für HTML5/XML/Java-Template-Engine für XHTML. Ihre leistungsstarke Parsing-Template-Cache reduziert I/O herabgesetzt. Es kann als Template-Engine-Framework verwendet werden, wenn erforderlich. Es unterstützt mehrere Template-Formate: XML, XHTML und HTML5. Es ermöglicht es Entwicklern, Erweiterungen und benutzerdefinierte Dialekte zu erstellen. Es basiert auf einer modularisierten Funktionsgruppe, die als Dialekt bezeichnet wird. Es unterstützt Internationalisierung.

Thymeleaf-Implementierung

können wir durch Hinzufügen von   spring-boot-starter-thymeleaf Abhängigkeiten, um das Thymeleaf-Template-Engine-Datei zu realisieren. Spring Boot konfiguriert den Template-Engine, um aus  /resource/templates Dateien lesen.
<dependency>
<groupId>org.springframework.boot</<groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
 

Spring Boot Thymeleaf-Beispiel

Wir erstellen eine Spring Boot-Anwendung und implementieren das Thymeleaf-Template.

Schritte1: Öffnen Sie Spring Initializr http://start.spring.io .

Schritte2: Wählen Sie die Version von Spring Boot aus   2.3.0.M1.

Schritte2: bereitstellen  GruppeName. Wir bieten   com.w3codebox .

Schritte3: bereitstellen  Arbeit ID. Wir bieten   spring-boot-thymeleaf-view-example。

Schritte5: Abhängigkeiten hinzufügen   Spring Web und  Thymeleaf.

Schritte6: klicken   Generate (Erstellen) -Knopf. Wenn wir auf den "Erstellen"-Knopf klicken, packt es die Spezifikation in   Jar Datei, und laden Sie sie auf das lokale System herunter.

der7Schritt: Extrahieren Jar-Datei und fügen Sie sie in den STS-Workbereich ein.

Schritte8: Importieren STS-Projektordner.

Datei->Importieren->Bestehendes Maven-Projekt->Durchsuchen->Wählen Sie den Ordner spring-boot-thymeleaf-view-example->Fertig

Das Einfügen von Importen dauert einige Zeit.

Schritte9: im Paket   com.w3codebox In der Klasse erstellen wir eine   User-Klasse.

In dieser Klasse haben wir zwei Variablen definiert   name und   email und generiert   Getter und Setter.

User.java

package com.w3codebox;  
public class User 
{  
String name;  
String email;  
public String getName() 
{  
return name;  
}  
public void setName(String name) 
{  
this.name = name;  
}  
public String getEmail() 
{  
return email;  
}  
public void setEmail(String email) 
{  
this.email = email;  
}  
}
 

Schritte10: Erstellen Sie eine Controller-Klasse. Wir haben eine Klasse namens   DemoController der Controller-Klasse.

DemoController.java

package com.w3codebox;  
import org.springframework.web.bind.annotation.ModelAttribute;  
import org.springframework.web.bind.annotation.RequestMapping;  
import org.springframework.web.bind.annotation.RequestMethod;  
import org.springframework.web.servlet.ModelAndView;  
import org.springframework.stereotype.Controller;  
@Controller  
public class DemoController 
{  
@RequestMapping("/")  
public String index()
{  
return"index";  
}  
@RequestMapping(value="/save", method=RequestMethod.POST)  
public ModelAndView save(@ModelAttribute User user)
{  
ModelAndView modelAndView = new ModelAndView();  
modelAndView.setViewName("user"-data");      
modelAndView.addObject("user", user);    
return modelAndView;  
}  
}
 

Nächste Schritte: Wir erstellen Thymeleaf-Templates.

Schritte11: in}}  im Vorlageninneren(src/main/resources/Verzeichnis) Verzeichnis, erstellen Sie einen Namen   user-data Thymeleaf-Vorlagen.

Klicken Sie mit der rechten Maustaste im Vorlagen-Ordner->Neu->Andere->HTML-Datei->Nächste->Geben Sie den Dateinamen an->Fertig

Hinweis: Vergessen Sie nicht, den folgenden Inhalt in der Vorlagen-Datei zu implementieren.
<html lang="en" xmlns:th="http://www.thymeleaf.org">
 

user-data.html

<html xmlns:th="https://thymeleaf.org">  
<table>  
<tr>  
<td><h4>Benutzername: </h4></td>  
<td><h4 th:text="${user.name}"></h4></td>  
</tr>  
<tr>  
<td><h4>E-Mail-ID: </h4></td>  
<td><h4 th:text="${user.email}"></h4></td>  
</tr>  
</table>  
</html>
 

Schritte12: ähnlich, eine im Verzeichnis Muster erstellen.   HTML Datei. Wir haben eine Datei namens   index HTML-Datei.

index.html

<html lang="en">  
<head>  
<title>Index Page</title>  
</head>  
<body>  
<form action="save" method="post">  
<table>  
<tr>  
<td><label for="user-name">Benutzername</label></td>  
<td><input type="text" name="name"></input></td>  
 </tr>  
<tr>  
<td><label for="email">Email</label></td>  
<td><input type="text" name="email"></input></td>  
</tr>  
<tr>  
<td></td>  
<td><input type="submit" value="Submit"></input></td>  
</tr>  
</table>  
</form>  
</body>  
</html>
 

Schritte13: Öffnen   application.properties Datei und fügen Sie die folgenden Eigenschaften hinzu.

application.properties

spring.thymeleaf.cache=false
spring.thymeleaf.suffix: .html
 

Nachdem alle Dateien, Ordner und Pakete erstellt wurden, sieht der Projektordner wie folgt aus:

Lassen Sie uns die Anwendung ausführen.

Schritte14: Öffnen   SpringBootThymeleafViewExampleApplication.java Datei und als Java-Anwendung.

SpringBootThymeleafViewExampleApplication.java

package com.w3codebox;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringBootThymeleafViewExampleApplication 
{
public static void main(String[] args) 
{
SpringApplication.run(SpringBootThymeleafViewExampleApplication.class, args);
}
}
 

Schritte15: Öffnen Sie jetzt Ihren Browser und rufen Sie die URL http://localhost:8080. Es zeigt die Ausgabe wie folgt an.

bereitstellen  Benutzernameund  E-Mail, dann klicken Sie auf  einreichenSchaltfläche.

klicken  einreichenSchaltflächen hinzufügen, und die URL ändert sich zu http://localhost: 8080/speichern und die Benutzerdaten wie folgt anzeigen.

In diesem Abschnitt haben wir die Thymeleaf-Ansichten besprochen. Um die Ansichten ansprechender zu gestalten, können Sie   CSS und   JS Dateien. Diese Dateien müssen sich in   src/main/resources/static im Ordner.