Thymeleaf是一款强大的模板引擎,常用于Spring Boot项目中,替代JSP作为视图层技术。本示例“Thymeleaf之HelloWorld”旨在介绍如何在Java环境中结合Maven构建一个简单的Thymeleaf应用,从而实现“HelloWorld”的展示。
我们需要在项目中集成Thymeleaf。在Maven的`pom.xml`文件中添加Thymeleaf的依赖,如下所示:
```xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
</dependencies>
```
这个依赖包含了Spring Boot对Thymeleaf的支持,同时也包含了Maven对Spring Boot的自动配置。
接下来,创建一个基本的Spring Boot应用。在`src/main/java`目录下,创建一个名为`com.example.demo`的包(这里假设项目名为`demo`),并在该包内创建一个启动类`DemoApplication`,继承自`SpringApplication`:
```java
package com.example.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);
}
}
```
现在,我们需要配置Thymeleaf模板。Thymeleaf的模板通常放在`src/main/resources/templates`目录下。创建一个名为`hello.html`的文件,内容如下:
```html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Hello World</title>
</head>
<body>
<h1 th:text="Hello, ${name}!">Hello, World!</h1>
</body>
</html>
```
在上面的代码中,`th:text`属性是Thymeleaf的表达式,它会在运行时被替换。`${name}`是一个变量,将在Java代码中定义并传递给模板。
为了将数据注入到模板中,我们需要创建一个控制器。在`com.example.demo`包下创建一个名为`HelloController`的类:
```java
package com.example.demo;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HelloController {
@GetMapping("/hello")
public String sayHello(Model model) {
model.addAttribute("name", "Thymeleaf");
return "hello";
}
}
```
这里,`@GetMapping("/hello")`注解定义了一个HTTP GET请求的处理方法。`sayHello`方法将“Thymeleaf”这个字符串添加到模型中,并返回模板的名称“hello”,Thymeleaf会自动寻找与之对应的`hello.html`文件。
至此,我们的Thymeleaf“HelloWorld”示例已经完成。当启动Spring Boot应用并访问`http://localhost:8080/hello`时,浏览器将会显示“Hello, Thymeleaf!”。
Thymeleaf支持丰富的条件判断、循环结构以及国际化等功能,使得开发者能更便捷地处理前端逻辑。其语法简洁且易于理解,是现代Java Web开发中的一个优秀选择。通过这个简单的例子,你已经迈出了掌握Thymeleaf的第一步。随着进一步的学习,你将发现Thymeleaf在实际项目中带来的便利性。