O que é Thymeleaf e para que serve?
\n\nThymeleaf é um moderno template engine server-side para aplicações Java, projetado para gerar arquivos HTML, XML, JavaScript, CSS e de texto. Ao contrário do JSP (JavaServer Pages), o Thymeleaf oferece uma sintaxe mais limpa, legível e natural, que é facilmente compreendida tanto por desenvolvedores quanto por designers.
\n\nA principal vantagem do Thymeleaf é que seus templates são documentos HTML válidos. Isso significa que você pode abrir o template no navegador sem iniciar o servidor e visualizar sua estrutura. Os dados dinâmicos são inseridos por meio de atributos especiais que começam com o prefixo th:.
Thymeleaf integra-se perfeitamente com o Spring Framework (especialmente Spring Boot), mas também pode ser usado como uma biblioteca independente. Ele suporta layouts, fragments, construções condicionais, loops, trabalho com formulários, internacionalização (i18n) e muito mais.
\n\nInstalação do Thymeleaf
\n\nComo Thymeleaf é uma biblioteca Java, ela é instalada através de sistemas de gerenciamento de dependências como Maven ou Gradle. Não existe um equivalente ao pip install para Java.
Instalação via 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\nInstalação via Gradle (build.gradle)
\n\nimplementation 'org.thymeleaf:thymeleaf:3.1.2.RELEASE'\n\nPara Spring Boot (recomendado)
\n\nSe você estiver usando Spring Boot, basta adicionar o starter:
\n\n<dependency>\n <groupId>org.springframework.boot</groupId>\n <artifactId>spring-boot-starter-thymeleaf</artifactId>\n</dependency>\n\nO Spring Boot configurará automaticamente o Thymeleaf com configurações padrão sensatas.
\n\nInício rápido com exemplo de código
\n\nVamos criar uma aplicação de console simples que usa Thymeleaf para gerar HTML.
\n\nPasso 1: Crie o template (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\nPasso 2: Escreva o código Java para processar o template
\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. Configuração do resolvedor de templates\n ClassLoaderTemplateResolver resolver = new ClassLoaderTemplateResolver();\n resolver.setPrefix("/templates/");\n resolver.setSuffix(".html");\n resolver.setTemplateMode("HTML");\n\n // 2. Criação do motor de templates\n TemplateEngine engine = new TemplateEngine();\n engine.setTemplateResolver(resolver);\n\n // 3. Criação do contexto com dados\n Context context = new Context();\n context.setVariable("message", "Olá, Thymeleaf!");\n\n // 4. Processamento do template\n String result = engine.process("hello", context);\n \n System.out.println(result);\n }\n}\n\nResultado da execução:
\n\n<!DOCTYPE html>\n<html>\n<head>\n <title>Hello Thymeleaf</title>\n</head>\n<body>\n <h1>Olá, Thymeleaf!</h1>\n <p>Current date: <span>15-03-2024</span></p>\n</body>\n</html> Também na biblioteca
Criação de aplicações CLI em Node.js: frameworks Commander e Yargs
Framework CLI para C++: cppcli — criação de aplicações de console
Filas de Tarefas em Kotlin: Coroutines, KJob e Padrões Avançados
Trabalhando com Apache Kafka em C++: bibliotecas e exemplos