Spring Boot Thymeleaf



  • Thymeleaf

    Thymeleaf 是用于创建Web应用程序的基于Java的库。它为在Web应用程序中提供XHTML / HTML5提供了良好的支持。在本章中,您将详细了解Thymeleaf
  • Thymeleaf 模板

    Thymeleaf将您的文件转换为格式正确的XML文件。它包含6种类型的模板,如下所示-
    • XML
    • 有效的XML
    • XHTML
    • 有效的XHTML
    • HTML5
    • 旧版HTML5
    除旧版HTML5之外,所有模板均引用格式正确的有效XML文件。旧版HTML5允许我们在网页中呈现HTML5标签,包括未关闭的标签。
  • Web应用程序

    您可以使用Thymeleaf模板在Spring Boot中创建Web应用程序。您将必须按照以下步骤使用Thymeleaf在Spring Boot中创建Web应用程序。使用以下代码创建@Controller类文件,以将请求URI重定向到HTML文件-
    
    package com.jc2182.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文件应放置在templates目录下,所有JS和CSS文件应放置在classpath中的static目录下。在所示的示例中,我们使用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>
    
    
    项目资源管理器显示在下面给出的屏幕截图中-
    thymeleaf
    现在,我们需要在构建配置文件中添加Spring Boot Starter Thymeleaf依赖项。Maven用户可以将以下依赖项添加到pom.xml文件中-
    
    <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    
    
    Gradle用户可以在build.gradle文件中添加以下依赖项-
    
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
    
    
    下面给出了一个的Spring Boot应用程序入口文件-
    
    package com.jc2182.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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.3.0.BUILD-SNAPSHOT</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.jc2182</groupId>
        <artifactId>demo</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>demo</name>
        <description>Demo project for Spring Boot</description>
    
        <properties>
            <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>
                <exclusions>
                    <exclusion>
                        <groupId>org.junit.vintage</groupId>
                        <artifactId>junit-vintage-engine</artifactId>
                    </exclusion>
                </exclusions>
            </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>
    
        <repositories>
            <repository>
                <id>spring-milestones</id>
                <name>Spring Milestones</name>
                <url>https://repo.spring.io/milestone</url>
            </repository>
            <repository>
                <id>spring-snapshots</id>
                <name>Spring Snapshots</name>
                <url>https://repo.spring.io/snapshot</url>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
            </repository>
        </repositories>
        <pluginRepositories>
            <pluginRepository>
                <id>spring-milestones</id>
                <name>Spring Milestones</name>
                <url>https://repo.spring.io/milestone</url>
            </pluginRepository>
            <pluginRepository>
                <id>spring-snapshots</id>
                <name>Spring Snapshots</name>
                <url>https://repo.spring.io/snapshot</url>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
            </pluginRepository>
        </pluginRepositories>
    
    </project>
    
    
    下面给出了Gradle Build – build.gradle的代码-
    
    plugins {
        id 'org.springframework.boot' version '2.3.0.BUILD-SNAPSHOT'
        id 'io.spring.dependency-management' version '1.0.9.RELEASE'
        id 'java'
    }
    
    group = 'com.jc2182'
    version = '0.0.1-SNAPSHOT'
    sourceCompatibility = '1.8'
    
    repositories {
        mavenCentral()
        maven { url 'https://repo.spring.io/milestone' }
        maven { url 'https://repo.spring.io/snapshot' }
    }
    
    dependencies {
        implementation 'org.springframework.boot:spring-boot-starter-web'
        implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
        testImplementation('org.springframework.boot:spring-boot-starter-test') {
            exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
        }
    }
    
    test {
        useJUnitPlatform()
    }    
    
    
    您可以创建一个可执行的JAR文件,并使用Maven或Gradle命令运行Spring Boot应用程序-
    对于Maven,您可以使用以下命令-
    
    mvn clean install
    
    
    在“BUILD SUCCESS”之后,您可以在target目录下找到JAR文件。
    对于Gradle,您可以使用以下命令-
    
    gradle clean build
    
    
    在“BUILD SUCCESSFUL”之后,您可以在build/libs目录下找到JAR文件。
    您可以使用以下命令运行JAR文件-
    
    java –jar <JARFILE>
    
    
    在Tomcat端口8080上启动应用程序
    现在在您的Web浏览器中访问URL - http://localhost:8080/index,您可以看到如下所示的输出-
    thymeleaf