背景
我们以前开发的时候使用jsp页面因为jsp支持非常强大的功能,包括能写Java代码,但是springboot是以jar包的方式,且是内嵌式的Tomcat 所以默认是不支持jsp的。
所以SpringBoot推荐使用模板引擎:
官方推荐我们的是Thymeleaf模板引擎
当然还有好多其他的魔板 语法上虽有一些不同但是大体上的思路是相同的: 模板引擎的作用就是我们写一个页面的模板,有些值是动态获取的,我们需要写一些表达式。而这些值,我们在后台封装一些数据。然后把这个模板和这个数据交给我们模板引擎,模板引擎按帮你把这表达式解析、填充到我们指定的位置,然后把这个数据最终生成一个我们想要的内容给我们写上去。
使用Thymeleaf
Thymeleaf 官网:点击
Thymeleaf 在Github 的主页:点击
只要需要使用thymeleaf,只需要导入对应的依赖就可以了 我们将html页面放在templates目录下即可
首先我们要找到对应版本的pom依赖导进去
代码语言:javascript复制<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
引入这个依赖之后就可以使用了
代码语言:javascript复制//这个需要魔板引擎的支持 thymeleaf
//根据前缀后缀自动匹配 前缀 DEFAULT_PREFIX = "classpath:/templates/"; 后缀 DEFAULT_SUFFIX = ".html"
html放在templates下
需要在页面引入一个头
代码语言:javascript复制xmlns:th="http://www.thymeleaf.org"
代码语言:javascript复制<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<!--所有的html元素都可以被thymeleaf替换接管 :th:元素名-->
<div th:text="${msg}"></div>
<!--不转义-->
<div th:utext="${msg}"></div>
<hr>
<!--遍历users这个集合 每个元素遍历为user 遍历出来的元素展现到文本里面-->
<!--第二种写法-->
<!--<h3 th:each="user:${users}">[[${user}]]</h3>-->
<!--第一种写法-->
<h3 th:each="user:${users}" th:text="${user}"></h3>
</body>
</html>
写一个控制层测试
代码语言:javascript复制Controller
public class indexController {
@RequestMapping("/test")
public String index(Model model){
model.addAttribute("msg","<h1>hello springboot!</h1>");
/*Arrays aslist可以把数组转化成集合*/
model.addAttribute("users", Arrays.asList("zhangsan","lisi","wangwu"));
return "test";
}
}
测试
魔板的语法可以查看官方文档