一、Thymeleaf模板引擎介绍
【1】Thymeleaf 是 Web 和独立环境的现代服务器端 Java 模板引擎,能够处理HTML,XML,JavaScript,CSS 甚至纯文本。
【2】Thymeleaf 的主要目标是提供一种优雅和高度可维护的创建模板的方式。为了实现这一点,它建立在自然模板的概念上,将其逻辑注入到模板文件中,不会影响模板被用作设计原型。这改善了设计的沟通,弥补了设计和开发团队之间的差距。
【3】Thymeleaf 也从一开始就设计了Web标准 - 特别是 HTML5 - 允许您创建完全验证的模板,Spring Boot 官方推荐使用 thymeleaf 而不是 JSP。
二、Spring Boot中的Thymeleaf模板引擎
【1】引入Thymeleaf,在pom.xml文件中导入以下依赖
org.springframework.boot
spring-boot-starter-thymeleaf
注意:不需要在依赖中写入版本号,Spring Boot已经帮我们统一号版本。
【2】Thymeleaf的使用和语法
1、把HTML页面放在classpath:/templates路径下,thymeleaf就能帮我们自动渲染。
2、thymeleaf会帮我们自动在后缀名字加上.html,并且在路径classpath:/templates下找到success.html页面,和Spring MVC中的视图解析器类似。
举一个例子:
①、在controller包下创建HelloWorldController类,如下所示:
package com.czd.springbootwebdemo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* @author czd
*/
@Controller
public class HelloWorldController {
@RequestMapping("/success")
public String success(){
return "success";
}
}
②、在 resources/templates 路径下创建 success.html,页面代码如下所示:
Success
success
③、运行Spring Boot,也就是main方法有SpringApplication.run(SpringbootwebdemoApplication.class, args)的程序驱动类,如下所示:
package com.czd.springbootwebdemo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringbootwebdemoApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootwebdemoApplication.class, args);
}
}
①、导入thymeleaf的名称空间,如下所示:
②、基本语法
③、表达式
========================
========================
========================
========================
========================
========================
四、代码示例
【1】在 classpath/templates 路径下创建 success.html页面,代码如下所示:
Success
success
不对特殊字符进行转义!
对特殊字符进行转义!
这里是users集合的内容
【2】创建一个controller包,在此包下创建HelloWorldController类,如下所示:
package com.czd.springbootwebdemo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import sun.rmi.transport.ObjectTable;
import java.util.Arrays;
import java.util.Map;
/**
* @author czd
*/
@Controller
public class HelloWorldController {
@RequestMapping("/success")
public String success(Map map){
map.put("hello","HelloWorld
");
map.put("users", Arrays.asList("张三","李四","王五"));
return "success";
}
}