SpringBoot整合视图层:整合Thymeleaf
SpringBoot学习目录
创建项目
修改pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.RELEASE</version>
</parent>
<groupId>com.hzk</groupId>
<artifactId>1springboot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!-- 修改jdk版本 -->
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!-- springBoot 的启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- springBoot 的启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
</dependencies>
</project>
创建Controller
/**
* Thymeleaf 入门案例
*
*/
@Controller
public class DemoController {
@RequestMapping("/show")
public String showInfo(Model model){
model.addAttribute("msg", "Thymeleaf 第一个案例");
return "index";
}
}
创建视图
index.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Thymeleaf 入门</title>
</head>
<body>
<span th:text="Hello"></span>
<hr/>
<span th:text="${msg}"></span>
</body>
</html>
创建启动类
Application.java:
/**
* SpringBoot 启动类
*
*/
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
启动项目,访问localhost:8080/show
解决异常
此步骤创建项目可能会出现异常:org. xml.sax. SAXParseException:元素类型"meta"必须由匹配的结束标记""终止。
1.解决方式一
修改index.html,让html的标记严格按照语法去编写
<!-- 修改前 -->
<meta charset="UTF-8">
<!-- 修改后 -->
<meta charset="UTF-8"/>
2.解决方式二
修改jar包版本
<properties>
<java.version>1.8</java.version>
<thymeleaf.version>3.0.2.RELEASE</thymeleaf.version>
<!-- <springboot-thymeleaf.version>3.0.2.RELEASE</springboot-thymeleaf.version> -->
<thymeleaf-layout-dialect.version>2.0.4</thymeleaf-layout-dialect.version>
</properties>
如果提示thymeleaf.version找不到,需要使用springboot-thymeleaf.version
这里用的是org.springframework.boot下的spring-boot-starter-thymeleaf,使用<thymeleaf.version>做标签时可能与org.thymeleaf有冲突,导致包获取不正确
<properties>
<java.version>1.8</java.version>
<!-- <thymeleaf.version>3.0.2.RELEASE</thymeleaf.version> -->
<springboot-thymeleaf.version>3.0.2.RELEASE</springboot-thymeleaf.version>
<thymeleaf-layout-dialect.version>2.0.4</thymeleaf-layout-dialect.version>
</properties>