Spring Boot - Thymeleaf

Thymeleaf é uma biblioteca baseada em Java usada para criar um aplicativo da web. Ele fornece um bom suporte para servir um XHTML / HTML5 em aplicativos da web. Neste capítulo, você aprenderá em detalhes sobre o Thymeleaf.

Modelos de Thymeleaf

Thymeleaf converte seus arquivos em arquivos XML bem formados. Ele contém 6 tipos de modelos, conforme abaixo -

  • XML
  • XML válido
  • XHTML
  • XHTML válido
  • HTML5
  • HTML5 legado

Todos os modelos, exceto HTML5 legado, referem-se a arquivos XML válidos bem formados. O HTML5 legado nos permite renderizar as tags HTML5 na página da web, incluindo as tags não fechadas.

Aplicativo da Web

Você pode usar os modelos do Thymeleaf para criar um aplicativo da web no Spring Boot. Você terá que seguir as etapas abaixo para criar um aplicativo da web no Spring Boot usando o Thymeleaf.

Use o seguinte código para criar um arquivo de classe @Controller para redirecionar o URI de solicitação para o arquivo HTML -

package com.tutorialspoint.demo.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class WebController {
   @RequestMapping(value = "/index")
   public String index() {
      return "index";
   }
}

No exemplo acima, o URI do pedido é /index, e o controle é redirecionado para o arquivo index.html. Observe que o arquivo index.html deve ser colocado no diretório de modelos e todos os arquivos JS e CSS devem ser colocados no diretório estático no classpath. No exemplo mostrado, usamos o arquivo CSS para alterar a cor do texto.

Você pode usar o seguinte código e criar um arquivo CSS em uma pasta separada css e nomeie o arquivo como styles.css -

h4 {
   color: red;
}

O código do arquivo index.html é fornecido abaixo -

<!DOCTYPE html>
<html>
   <head>
      <meta charset = "ISO-8859-1" />
      <link href = "css/styles.css" rel = "stylesheet"/>
      <title>Spring Boot Application</title>
   </head>
   <body>
      <h4>Welcome to Thymeleaf Spring Boot web application</h4>
   </body>
</html>

O explorador do projeto é mostrado na imagem abaixo -

Agora, precisamos adicionar a dependência Thymeleaf do Spring Boot Starter em nosso arquivo de configuração de compilação.

Os usuários do Maven podem adicionar a seguinte dependência ao arquivo pom.xml -

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

Os usuários do Gradle podem adicionar a seguinte dependência no arquivo build.gradle -

compile group: 'org.springframework.boot', name: 'spring-boot-starter-thymeleaf'

O código para o arquivo de classe do aplicativo Spring Boot principal é fornecido abaixo -

package com.tutorialspoint.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {
   public static void main(String[] args) {
      SpringApplication.run(DemoApplication.class, args);
   }
}

O código para Maven - pom.xml é fornecido abaixo -

<?xml version = "1.0" encoding = "UTF-8"?>
<project xmlns = "http://maven.apache.org/POM/4.0.0" 
   xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0 
   http://maven.apache.org/xsd/maven-4.0.0.xsd">
   
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.tutorialspoint</groupId>
   <artifactId>demo</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <packaging>jar</packaging>
   <name>demo</name>
   <description>Demo project for Spring Boot</description>

   <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>1.5.8.RELEASE</version>
      <relativePath />
   </parent>

   <properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
      <java.version>1.8</java.version>
   </properties>

   <dependencies>
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-web</artifactId>
      </dependency>

      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-test</artifactId>
         <scope>test</scope>
      </dependency>

      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-thymeleaf</artifactId>
      </dependency>
   </dependencies>

   <build>
      <plugins>
         <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
         </plugin>
      </plugins>
   </build>
   
</project>

O código para Gradle - build.gradle é fornecido abaixo -

buildscript {
   ext {
      springBootVersion = '1.5.8.RELEASE'
   }
   repositories {
      mavenCentral()
   }
   dependencies {
      classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
   }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'

group = 'com.tutorialspoint'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8

repositories {
   mavenCentral()
}
dependencies {
   compile('org.springframework.boot:spring-boot-starter-web')
   compile group: 'org.springframework.boot', name: 'spring-boot-starter-thymeleaf'
   testCompile('org.springframework.boot:spring-boot-starter-test')
}

Você pode criar um arquivo JAR executável e executar o aplicativo Spring Boot usando os seguintes comandos Maven ou Gradle -

Para Maven, use o comando conforme mostrado abaixo -

mvn clean install

Após “BUILD SUCCESS”, você pode encontrar o arquivo JAR no diretório de destino.

Para Gradle, use o comando conforme mostrado abaixo -

gradle clean build

Depois de “BUILD SUCCESSFUL”, você pode encontrar o arquivo JAR no diretório build / libs.

Execute o arquivo JAR usando o comando fornecido aqui -

java –jar <JARFILE>

Agora, o aplicativo foi iniciado na porta Tomcat 8080 conforme mostrado abaixo -

Agora acesse a URL em seu navegador da web e você poderá ver a saída conforme mostrado -

http://localhost:8080/index