Учебники

Spring Boot — Thymeleaf

Thymeleaf — это библиотека на основе Java, используемая для создания веб-приложения. Он обеспечивает хорошую поддержку для обслуживания XHTML / HTML5 в веб-приложениях. В этой главе вы узнаете подробно о Thymeleaf.

Шаблоны с тимьяном

Thymeleaf преобразует ваши файлы в правильно сформированные XML-файлы. Он содержит 6 типов шаблонов, как указано ниже —

  • XML
  • Действительный XML
  • XHTML
  • Действительный XHTML
  • HTML5
  • Наследие HTML5

Все шаблоны, кроме Legacy HTML5, ссылаются на правильно сформированные допустимые файлы XML. Устаревший HTML5 позволяет отображать теги HTML5 на веб-странице, включая закрытые теги.

Веб приложение

Вы можете использовать шаблоны Thymeleaf для создания веб-приложения в Spring Boot. Чтобы создать веб-приложение в Spring Boot с помощью Thymeleaf, вам нужно будет выполнить следующие шаги.

Используйте следующий код для создания файла класса @Controller для перенаправления URI запроса в файл 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";
   }
}

В приведенном выше примере URI запроса — / index , а элемент управления перенаправляется в файл index.html. Обратите внимание, что файл index.html должен быть помещен в каталог шаблонов, а все файлы JS и CSS должны быть помещены в статический каталог в classpath. В показанном примере мы использовали файл CSS, чтобы изменить цвет текста.

Вы можете использовать следующий код и создать файл CSS в отдельной папке css и назвать файл как styles.css —

h4 {
   color: red;
}

Код для файла index.html приведен ниже —

<!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>

Исследователь проекта показан на скриншоте ниже.

Скриншот Project Explorer

Теперь нам нужно добавить зависимость Spring Boot Starter Thymeleaf в наш файл конфигурации сборки.

Пользователи Maven могут добавить следующую зависимость в файл pom.xml:

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

Пользователи Gradle могут добавить следующую зависимость в файл build.gradle:

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

Код основного файла класса приложения Spring Boot приведен ниже —

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

Код для Maven — pom.xml приведен ниже —

<?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>

Код для Gradle — build.gradle приведен ниже —

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')
}

Вы можете создать исполняемый файл JAR и запустить приложение весенней загрузки, используя следующие команды Maven или Gradle:

Для Maven используйте команду как показано ниже —

mvn clean install

После «BUILD SUCCESS» вы можете найти файл JAR в целевом каталоге.

Для Gradle используйте команду как показано ниже —

gradle clean build

После «BUILD SUCCESSFUL» вы можете найти файл JAR в каталоге build / libs.

Запустите файл JAR, используя приведенную здесь команду —

java –jar <JARFILE> 

Теперь приложение запущено на порт 8080 Tomcat, как показано ниже:

Запущенное приложение на Tomcat Port_8080

Теперь нажмите URL в вашем веб-браузере, и вы увидите результат, как показано на рисунке —

HTTP: // локальный: 8080 / индекс