SpringBoot+Thymeleaf(html5)使用
SpringBoot+Thymeleaf的使用其实很简单,加依赖,加配置,写html5,然后就可以了,但是其中有遇到一些坑,所以记下来,以备后期查询。
一、在pom.xml里添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
二、在配置文件(application.yml或者application.properties)里添加配置,此处贴出的是application.yml的代码。
spring: thymeleaf: #模板的模式,支持 HTML, XML TEXT JAVASCRIPT mode: html5 #编码 可不用配置 encoding: UTF-8 #内容类别,可不用配置 content-type: text/html #开发配置为false,避免修改模板还要重启服务器 cache: false #配置模板路径,默认是templates,可以不用配置 prefix: classpath:/templates/ suffix: .html
此处有一点需要注意:prefix:classpath:/templates/,如果前缀这里最后有/,那在Controller返回的视图名里就不需要在前面加/。否则会报template might not exist or might not be accessible by any of the configured的错误。详细配置方案如下: 方法1: application.yml最后有/ spring: prefix: classpath:/templates/ Controller返回的时前面不需要添加/ @Controller @RequestMapping("/first") public class FirstController { @RequestMapping("/test") public String hello(Model model) { String name = "xiaosha"; model.addAttribute("name", name); return "test"; } } 方法2: application.yml最后没有/ spring: prefix: classpath:/templates Controller返回的时前面需要添加/ @Controller @RequestMapping("/first") public class FirstController { /** * 测试视图解析器 */ @RequestMapping("/test") public String hello(Model model) { String name = "xiaosha"; model.addAttribute("name", name); return "test"; } }
三、编写html文件、「<html xmlns:th="http://www.thymeleaf.org">」不能少
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>hello</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
<p>3333</p>
<input th:value="${name}"/>
</body>
</html>
四、编辑Controller
切记不可用@RestController、因为它是@Controller+@ResponseBody的合集,若用它,返回的就是JSON数据,而不是view。
@Controller
@RequestMapping("/first")
public class FirstController {
/**
* 测试视图解析器
*/
@RequestMapping("/test")
public String hello(Model model) {
String name = "xiaosha";
model.addAttribute("name", name);
return "test";
}
}
五、访问,正常显示
