下面是详细讲解“SpringBoot中的Thymeleaf模板”的完整攻略:
什么是Thymeleaf
Thymeleaf是一个Java模板引擎,类似于JSP,但比JSP更有优势。它不仅可以用于开发Web应用程序,还可以用于非Web应用程序。Thymeleaf的主要优势是它能够处理HTML,XML,JavaScript,CSS甚至纯文本。
使用Thymeleaf
依赖
首先在SpringBoot项目的Maven配置文件pom.xml中添加以下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
配置
Thymeleaf模板的默认位置是在classpath:/templates/下。所以需要在src/main/resources下创建templates文件夹,并将模板文件放在其中。
Thymeleaf的配置默认已经完成,不需要特别设置。
简单使用
在使用Thymeleaf时,需要使用th标签来映射模板表达式,如下所示:
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title th:text="${title}">Thymeleaf Test</title>
</head>
<body>
<p th:text="${content}">Content</p>
</body>
</html>
在上面的示例中,我们使用th:文本替换标签替换了title和content。
下面是一个简单的示例,演示如何使用Spring Boot和Thymeleaf创建一个Web视图:
控制器:
@Controller
public class IndexController {
@GetMapping("/")
public String index(ModelMap modelMap) {
modelMap.addAttribute("title", "Thymeleaf Test");
modelMap.addAttribute("content", "Hello World");
return "index";
}
}
HTML模板:
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title th:text="${title}">Thymeleaf Test</title>
</head>
<body>
<p th:text="${content}">Content</p>
</body>
</html>
在上面的示例中,我们使用Controller的GetMapping注解来映射URL路径为“/“的请求,然后使用ModelMap添加模板标题和内容。在HTML模板中,使用th:text标签替换了标题和内容。
循环和数据
Thymeleaf最强大的特性是它能够处理迭代和复杂的表达式,如下所示:
控制器:
@Controller
public class ListController {
@GetMapping("/list")
public String list(ModelMap modelMap) {
List<String> list = new ArrayList<>();
list.add("Task1");
list.add("Task2");
list.add("Task3");
modelMap.addAttribute("title", "List View");
modelMap.addAttribute("tasks", list);
return "list";
}
}
HTML模板:
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title th:text="${title}">List View</title>
</head>
<body>
<ul>
<li th:each="task: ${tasks}" th:text="${task}"></li>
</ul>
</body>
</html>
在上面的示例中,我们使用th:each标签循环遍历任务列表,并使用th:text标签替换任务名称。
表达式和操作符
Thymeleaf支持多种类型的表达式和操作符,例如:
- 数字字面量:100、2.32。
- 字符串字面量:“Hello”、“Thymeleaf”。
- 布尔字面量:true、false。
- 变量: ${variable}。
- 算术操作:+、-、*、/、%。
- 比较操作:==、!=、>、<、>=、<=。
- 逻辑操作:&&、||、!。
- 三目操作:?:。
- EL访问:${list[index]}表示数组下标。
结语
上面的攻略通过简单的示例演示了如何使用Thymeleaf在SpringBoot中构建Web应用程序的视图。Thymeleaf的语法比JSP更加简洁明了,还支持大量的表达式和操作符,非常实用。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot中的Thymeleaf模板 - Python技术站