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

Thymeleaf en Spring Boot

¿Qué es Thymeleaf?

Thymeleaf Es una biblioteca Java de código abierto según Licencia Apache20 Obtener licencia. Esto es una HTML5/XHTML/XML Motor de plantillas. Es utilizado para entornos web (basado en Servlet) y no web (desconectado) Plantilla de Java del lado del servidorMotor5 Para el desarrollo web en JVM, es una opción perfecta. Ofrece una integración completa con el Framework Spring.

Aplica una serie de transformaciones a los archivos de plantilla para mostrar datos o texto generados por la aplicación. Adecuado para proporcionar XHTML en aplicaciones web./HTML5.

El objetivo de Thymeleaf es proporcionar una Modernoy Bien formateadoManera de crear plantillas. Se basa en etiquetas XML y atributos. Estos marcadores XML definen la ejecución de lógica predefinida en el DOM (Modelo de Objetos de Documento), en lugar de escribir esta lógica explícitamente como código en la plantilla. Reemplaza a JSP .

La arquitectura de Thymeleaf permite Rápido Procesamiento, dependiendo del archivo de caché解析ado. Utiliza el menor I/Operación O.

¿Por qué usamos Thymeleaf?

JSP más o menos se parece a HTML. Pero no es completamente compatible con HTML como Thymeleaf. Podemos abrir y mostrar archivos de plantillas Thymeleaf en el navegador, pero los archivos JSP no.

Thymeleaf admite expresiones de variables como Spring EL ($ {...}) y ejecuta en propiedades de modelo, expresiones de asterisco (* {...}) se ejecuta en soporte de bean de formulario, la expresión de hash (#{...}) se utiliza para la internacionalización, y la expresión de enlace (@{......)) reescribe la URL.

Al igual que JSP, Thymeleaf se puede usar muy bien para correos electrónicos HTML enriquecidos.

¿Qué plantillas puede manejar Thymeleaf?

Thymeleaf puede manejar seis tipos de plantillas (también conocidas como" Patrón de plantilla) como sigue:

XML XML válido XHTML XHTML válido HTML5 HTML de versión anterior5

Además del HTML de versión anterior5Además de los patrones mencionados anteriormente XML claramente definido Archivo. Nos permite manejar HTML con etiquetas independientes, atributos de etiquetas sin valores o sin escribir entre comillas, entre otras funciones.5Archivo.

Para procesar archivos en este patrón específico, Thymeleaf realiza una conversión, transformando archivos en XML bien formateado Archivo (HTML válido)5archivo).}}

Nota: En Thymeleaf, la validación solo se aplica a plantillas XHTML y XML.

Thymeleaf también nos permite definir nuestros propios patrones de procesamiento de plantillas especificando dos formas de analizar plantillas en este modo. De esta manera, Thymeleaf puede procesar efectivamente cualquier modelo que se pueda modelar como un árbol de DOM como plantilla.

Dialecto estándar

Thymeleaf es un motor de plantillas que nos permite definir el marco de nodos del DOM. Los nodos del DOM procesados en la plantilla.

Los objetos que aplican lógica a los nodos del DOM se denominan Procesadores. Un grupo de procesadores y algunas herramientas adicionales se denominan Dialecto. El dialecto que contiene la biblioteca nuclear de Thymeleaf se llama Dialecto estándar

Si queremos definir lógica de procesamiento propia mientras aprovechamos las funciones avanzadas de la biblioteca, podemos definir nuestro propio dialecto. Propio dialecto. En el motor de plantillas, podemos configurar múltiples dialectos a la vez.

Paquete de integración Thymeleaf (thymeleaf-spring3y thymeleaf-spring4) define una propiedad llamada Dialecto SpringStandard del dialecto. El dialecto estándar es casi idéntico al SpringStandard. Sin embargo, el dialecto estándar tiene algunos cambios menores que permiten aprovechar mejor ciertas funciones del framework Spring.

Por ejemplo, utilizando Spring Expression Language en lugar del OGNL (Object Graph Navigation Language) estándar de Thymeleaf.

El dialecto estándar puede procesar plantillas de cualquier manera. Sin embargo, es muy adecuado para patrones de plantillas orientados a Web (HTML5y XHTML). Soporta y verifica las siguientes especificaciones XHTML:

XHTML 1Versión de transición XHTML estricto 10 XHTML 1Frame Set XHTML 1.1.

El procesador de dialecto estándar es un procesador de atributos que permite que el navegador muestre HTML5/Plantilla XHTML. Esto se debe a que ignoran otras propiedades.

Por ejemplo, cuando un archivo JSP utiliza una biblioteca de etiquetas, contiene un código que no puede ser mostrado por el siguiente navegador:

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

Thymeleaf Standard Dialect permite realizar la misma función con el siguiente código.

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

El código anterior también permite definir value propiedad( Thomas Al abrir el prototipo en el navegador, se mostrará este valor. Durante el proceso de procesamiento de Thymeleaf del plantilla, esta propiedad será procesada por ${student.name} El valor obtenido por la evaluación reemplaza.

Permite a los diseñadores y desarrolladores manejar el mismo archivo de plantilla. Reduciendo el trabajo necesario para convertir prototipos estáticos en archivos de plantillas de trabajo. Se llama Plantilla natural.

Características de Thymeleaf

Se puede usar tanto en entornos de red como en entornos no en red. Para HTML5/XML/Motor de plantillas Java para XHTML. Su alta capacidad de parseo de caché de plantillas I/Reduce al mínimo O. Si es necesario, puede utilizarse como marco de motor de plantillas. Soporta varios patrones de plantillas: XML, XHTML y HTML5. Permite a los desarrolladores expandir y crear dialectos personalizados. Se basa en un conjunto de funciones modulares llamado dialectos. Soporta internacionalización.

Implementación de Thymeleaf

Podemos agregar a través del archivo pom.xml de la aplicación   spring-boot-starter-thymeleaf Dependencias para implementar el motor de plantillas Thymeleaf. Spring Boot configura el motor de plantillas para leer archivos de plantillas desde  /resource/Lectura de archivos de plantilla en templates.
<dependency>
<groupId>org.springframework.boot</<groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
 

Ejemplo de Spring Boot Thymeleaf

Creamos una aplicación Spring Boot y implementamos el template Thymeleaf.

Paso1: Abrir Spring Initializr http://start.spring.io .

Paso2: Elegir la versión de Spring Boot   2.3.0.M1.

Paso2: proporcionar  Nombre del grupoNombre del grupo. Hemos proporcionado   com.w3codebox .

Paso3: proporcionar  Nombre del artefacto ID. Hemos proporcionado   spring-boot-thymeleaf-view-example.

Paso5: Añadir dependencias   Spring Web y  Thymeleaf.

Paso6: Hacer clic   Generate (Generar) Botón. Al hacer clic en el botón "Generar", se empaqueta la especificación en   Jar descargarlo en el sistema local.

El7Paso: Extraer Archivo Jar y péguelo en el área de trabajo de STS.

Paso8: Importar Carpeta del proyecto en STS.

Archivo-> Importar-> Proyecto Maven existente-> Navegar-> Seleccionar carpeta spring-boot-thymeleaf-view-example->Completar

La importación requiere algo de tiempo.

Paso9: en el paquete   com.w3codebox En la creación de la clase. Creamos una llamada   Clase User.

En esta clase, definimos dos variables   name y   email y genera   Getter y Setters.

User.java

paquete 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;  
}  
}
 

Paso10: Crear la clase controladora. Hemos creado una clase llamada   DemoController es la clase controladora.

DemoController.java

paquete 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;  
}  
}
 

El siguiente paso será crear el plantilla Thymeleaf.

Paso11: en  dentro de la plantilla(src/main/resources/Crear una carpeta llamada   user-data de las plantillas Thymeleaf.

Haga clic con el botón derecho en la carpeta de plantillas->Nuevo->Otro-> Archivo HTML->Siguiente->Proporcionar nombre de archivo->Completar

Nota: No olvides implementar lo siguiente en el archivo de plantilla.
<html lang="en" xmlns:th="http://www.thymeleaf.org">
 

user-data.html

<html xmlns:th="https://thymeleaf.org">  
<table>  
<tr>  
<td><h4>Nombre de Usuario: </h4></td>  
<td><h4 th:text="${user.name}"></h4></td>  
</tr>  
<tr>  
<td><h4>ID de Correo Electrónico: </h4></td>  
<td><h4 th:text="${user.email}"></h4></td>  
</tr>  
</table>  
</html>
 

Paso12: Del mismo modo, crea uno en la carpeta de plantillas.   HTML creamos un archivo llamado   index de archivo HTML.

index.html

<html lang="en">  
<head>  
<title>Página de Índice</title>  
</head>  
<body>  
<form action="save" method="post">  
<table>  
<tr>  
<td><label for="user-name">Nombre de Usuario</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>
 

Paso13: Abrir   application.properties Crear un archivo y agregar las siguientes propiedades.

application.properties

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

Después de crear todos los archivos, carpetas y paquetes, la estructura del directorio del proyecto es la siguiente:

Vamos a ejecutar la aplicación.

Paso14: Abrir   SpringBootThymeleafViewExampleApplication.java y lo abrimos como aplicación Java.

SpringBootThymeleafViewExampleApplication.java

paquete 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);
}
}
 

Paso15: Ahora, abra el navegador y llame a la URL http://localhost:8080. Muestra la salida, como se muestra a continuación.

proporcionar  nombre de usuarioy  correo electrónico, luego haga clic  Enviaren el botón.

Hacer clic  EnviarLos botones, el URL se cambia a http://localhost: 8080/guardar y mostrar los datos de usuario, como se muestra a continuación.

En esta sección, discutimos las vistas de Thymeleaf. Para hacer que la vista sea más atractiva, se puede agregar   CSS y   JS Los archivos deben estar ubicados   src/main/resources/static en la carpeta.