Java之SpringBoot-Thymeleaf详情
本攻略旨在介绍如何使用SpringBoot框架搭建一个基于Thymeleaf模板引擎的Web应用程序。其中包含以下主题:
- 什么是SpringBoot?
- 什么是Thymeleaf模板引擎?
- 如何搭建一个基于SpringBoot和Thymeleaf的Web应用程序?
- 示例1:基于Thymeleaf的静态页面
- 示例2:基于Thymeleaf的动态页面
1. 什么是SpringBoot?
SpringBoot是一个基于Spring框架的快速开发框架,它使开发人员更加容易地创建和部署独立的、生产级别的应用程序,并提供了默认的配置和约定俗成的设计模式。它减少了开发人员的配置工作量,使他们可以更专注于业务逻辑的实现。
2. 什么是Thymeleaf模板引擎?
Thymeleaf是一个Java模板引擎,它允许将HTML、XML、JavaScript、CSS和文本文件转换为纯Java代码,并在Java Web应用程序中使用。它具有简单易懂的语法和强大的功能,使得它是一个受欢迎的模板引擎选择。
3. 如何搭建一个基于SpringBoot和Thymeleaf的Web应用程序?
下面是搭建一个基于SpringBoot和Thymeleaf的Web应用程序的步骤:
步骤1:创建一个SpringBoot项目
使用Maven或Gradle创建一个新的SpringBoot项目。可以使用SpringBoot Initializr(https://start.spring.io)创建一个新项目,并添加一些基本的依赖项,比如Web和Thymeleaf。
步骤2:配置Thymeleaf
在application.properties
文件中添加以下属性,以便配置Thymeleaf:
spring.thymeleaf.mode=HTML
spring.thymeleaf.cache=false
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
这些配置文件指定了Thymeleaf的模板位置,以及应用程序的模式和缓存设置。
步骤3:创建HTML模板
在项目的src/main/resources/templates
目录下创建一个名为index.html
的HTML文件,并添加以下内容:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8"/>
<title>SpringBoot Thymeleaf Demo</title>
</head>
<body>
<h1 th:text="'Hello, ' + ${name} + '!'"></h1>
</body>
</html>
这个模板定义了一个在页面上显示“Hello, [name]!”字符串的H1元素,并且使用了Thymeleaf表达式${name}
表示要显示的名称。
步骤4:创建SpringBoot控制器
在项目的src/main/java
目录下创建一个名为HomeController.java
的Java类,并添加以下内容:
package com.example.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class HomeController {
@GetMapping("/")
public String home(@RequestParam(name = "name", required = false, defaultValue = "World") String name, Model model) {
model.addAttribute("name", name);
return "index";
}
}
这个控制器定义了一个默认的根路径请求(/
),它接收一个名为“name”的可选参数并在Model
对象中设置它。
步骤5:启动应用程序
使用Maven或Gradle启动应用程序。在浏览器中访问http://localhost:8080
,您应该看到一个包含文本“Hello, World!”的页面。
4. 示例1:基于Thymeleaf的静态页面
以下是一个基于Thymeleaf的静态页面的示例。该页面将从服务器端获取一个静态的字符串,并在页面上显示。
HTML模板
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8"/>
<title>Thymeleaf Static Example</title>
</head>
<body>
<h1 th:text="${message}"></h1>
</body>
</html>
控制器
package com.example.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class StaticExampleController {
@GetMapping("/static")
public String staticExample(Model model) {
model.addAttribute("message", "Hello, World!");
return "static";
}
}
访问URL
在浏览器中访问http://localhost:8080/static
,您应该看到一个包含文本“Hello, World!”的页面。
5. 示例2:基于Thymeleaf的动态页面
以下是一个基于Thymeleaf的动态页面的示例。该页面将从服务器端获取一组数据,并在页面上显示。
HTML模板
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8"/>
<title>Thymeleaf Dynamic Example</title>
</head>
<body>
<ul>
<li th:each="book : ${books}" th:text="${book.title}"></li>
</ul>
</body>
</html>
控制器
package com.example.demo.controller;
import com.example.demo.model.Book;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import java.util.Arrays;
import java.util.List;
@Controller
public class DynamicExampleController {
@GetMapping("/dynamic")
public String dynamicExample(Model model) {
List<Book> books = Arrays.asList(
new Book("Thinking in Java", "Bruce Eckel", 100),
new Book("Head First Java", "Kathy Sierra & Bert Bates", 200),
new Book("Effective Java", "Joshua Bloch", 300)
);
model.addAttribute("books", books);
return "dynamic";
}
}
这个控制器定义了一个请求URL为/dynamic
的方法,在该方法中创建了一组假数据(即三本书),将这些数据存储在Model
对象中,并将它们传递给视图。
访问URL
在浏览器中访问http://localhost:8080/dynamic
,您应该看到一个包含三个项目的无序列表,每个项目都包含一本书的标题。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java之SpringBoot-Thymeleaf详情 - Python技术站