SpringBoot+Thymeleaf前后端不分离
加入依赖
<!--thymeleaf 模板的静态页面-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
配置properties文件
#模版文件位置,注意如果配置错误会报500,找不到资源,默认就是classpath:/templates/
spring.thymeleaf.prefix=classpath:/templates/
#如果要放jar包同级目录下的templates文件夹里,修改配置如下
#spring.thymeleaf.prefix=file:templates/
#是否开启缓存,开发时可以设置为 false,默认为 true
spring.thymeleaf.cache=false
#Content-Type配置
spring.thymeleaf.servlet.content-type=text/html
#模版文件后缀
spring.thymeleaf.suffix=.html
#编码
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.prefix=classpath:/templates/是默认的,html文件放resources\templates里,这里用之前的邮件模板
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>mailtemplate</title>
</head>
<body>
<div th:text="${title}"></div>
</body>
</html>
项目打包后如果要放jar包同级目录下的templates里修改配置如下
spring.thymeleaf.prefix=file:templates/
目录结构
把html文件打包进jar包里注意pom文件里的设置
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.yml</include>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/**</include>
</includes>
<filtering>false</filtering>
</resource>
<include>**/**</include>是打包src/main/resources的所有文件
target目录和打包后的jar包目录如下
然后在controller包里写个新的Hello类
package com.zeromemos.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class Hello {
@RequestMapping("/hello")
public String hello(ModelMap map){
map.addAttribute("title", "thymeleaf模板测试");
return "mailtemplate";
}
}
注意这里用的@Controller
接收一个ModelMap 类型的参数map。然后通过map的addAttribute方法,添加了一个属性title,对应html模板里的th:text="${title}",注意这里return的字符串“mailtemplate”要和模板的名字一样。
启动项目访问测试