¿Qué es Thymeleaf y para qué sirve?
\n\nThymeleaf es un moderno motor de plantillas del lado del servidor para aplicaciones Java, diseñado para generar archivos HTML, XML, JavaScript, CSS y de texto. A diferencia de JSP (JavaServer Pages), Thymeleaf ofrece una sintaxis más limpia, legible y natural, que es fácil de entender tanto para desarrolladores como para diseñadores.
\n\nLa principal ventaja de Thymeleaf es que sus plantillas son documentos HTML válidos. Esto significa que puedes abrir una plantilla en el navegador sin iniciar el servidor y ver su estructura. Los datos dinámicos se insertan mediante atributos especiales que comienzan con el prefijo th:.
Thymeleaf se integra perfectamente con Spring Framework (especialmente Spring Boot), pero también puede usarse como una biblioteca independiente. Soporta diseños (layouts), fragmentos (fragments), estructuras condicionales, bucles, trabajo con formularios, internacionalización (i18n) y mucho más.
\n\nInstalación de Thymeleaf
\n\nComo Thymeleaf es una biblioteca de Java, se instala a través de sistemas de gestión de dependencias como Maven o Gradle. No existe un equivalente a pip install para Java.
Instalación mediante Maven (pom.xml)
\n\n<dependency>\n <groupId>org.thymeleaf</groupId>\n <artifactId>thymeleaf</artifactId>\n <version>3.1.2.RELEASE</version>\n</dependency>\n\nInstalación mediante Gradle (build.gradle)
\n\nimplementation 'org.thymeleaf:thymeleaf:3.1.2.RELEASE'\n\nPara Spring Boot (recomendado)
\n\nSi usas Spring Boot, basta con agregar el starter:
\n\n<dependency>\n <groupId>org.springframework.boot</groupId>\n <artifactId>spring-boot-starter-thymeleaf</artifactId>\n</dependency>\n\nSpring Boot configurará automáticamente Thymeleaf con valores predeterminados razonables.
\n\nInicio rápido con ejemplo de código
\n\nCreemos una aplicación de consola simple que use Thymeleaf para generar HTML.
\n\nPaso 1: Crea una plantilla (src/main/resources/templates/hello.html)
\n\n<!DOCTYPE html>\n<html xmlns:th="http://www.thymeleaf.org">\n<head>\n <title>Hello Thymeleaf</title>\n</head>\n<body>\n <h1 th:text="${message}">Default Message</h1>\n <p>Current date: <span th:text="${#dates.format(#dates.createNow(), 'dd-MM-yyyy')}">01-01-2024</span></p>\n</body>\n</html>\n\nPaso 2: Escribe el código Java para procesar la plantilla
\n\nimport org.thymeleaf.TemplateEngine;\nimport org.thymeleaf.context.Context;\nimport org.thymeleaf.templateresolver.ClassLoaderTemplateResolver;\n\npublic class ThymeleafQuickStart {\n public static void main(String[] args) {\n // 1. Configuración del resolvedor de plantillas\n ClassLoaderTemplateResolver resolver = new ClassLoaderTemplateResolver();\n resolver.setPrefix("/templates/");\n resolver.setSuffix(".html");\n resolver.setTemplateMode("HTML");\n\n // 2. Creación del motor de plantillas\n TemplateEngine engine = new TemplateEngine();\n engine.setTemplateResolver(resolver);\n\n // 3. Creación del contexto con datos\n Context context = new Context();\n context.setVariable("message", "¡Hola, Thymeleaf!");\n\n // 4. Procesamiento de la plantilla\n String result = engine.process("hello", context);\n \n System.out.println(result);\n }\n}\n\nResultado de la ejecución:
\n\n<!DOCTYPE html>\n<html>\n<head>\n <title>Hello Thymeleaf</title>\n</head>\n<body>\n <h1>¡Hola, Thymeleaf!</h1>\n <p>Current date: <span>15-03-2024</span></p>\n</body>\n</html> También en la biblioteca
Procesamiento de JSON en C++: bibliotecas, análisis y serialización de datos
Configuración de aplicaciones C++: bibliotecas y herramientas para una configuración flexible
Trabajo con YAML en Java: bibliotecas SnakeYAML y Jackson