springboot-Thymeleaf模板引擎

2022-03-23 17:25:38 浏览数 (1)

背景

我们以前开发的时候使用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";
    }
}

测试

魔板的语法可以查看官方文档

0 人点赞