1、导入Thymeleaf
关于Thymeleaf的相关介绍可以参考官网
关于Thymeleaf的使用和语法可以参考下面这个pdf(重要)
https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.pdf
我们需要在pom.xml
中导入Thymeleaf的依赖
<!--Thymeleaf-->
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring5</artifactId>
</dependency>
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-java8time</artifactId>
</dependency>
2、首页实现
我们用扩展mvc的方式实现首页:
如果你希望保留SpringBoot 中MVC的功能,并希望添加其他的配置(拦截器、格式化、视图控制器和其他功能),只需要添加自己的@Configuration
配置类,并让该类实现 WebMvcConfigurer
接口,但是不要在该类上添加 @EnableWebMvc
注解,一旦添加了,该配置类就会全面接管SpringMVC中配置,不会再帮我们自动装配了!WebMvcAutoConfiguration
这个自动装配类也就失效了!
我们在com.kuang
下创建一个config
包,在config
包里创建MyMvcConfig.java
的类
package com.kuang.controller;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* 该类类型应为:webMvcConfigurer,所以我们实现其接口
* 通过覆盖重写其中的方法实现扩展MVC的功能
* @EnableWebMvc这里不能使用,因为不需要接管SpringMVC
*/
@Configuration
public class MyMvcConfig implements WebMvcConfigurer {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
// 浏览器访问:localhost:8080/或者localhost:8080/index.html
// 都跳转到 classpath:/templates/index.html
registry.addViewController("/").setViewName("index");
registry.addViewController("/index.html").setViewName("index");
}
}
我们启动主程序访问测试一下,访问localhost:8080/
出现下面这个页面则表示成功
3、为什么静态资源没有加载?
我们成功跳转到了index.html
,但是静态资源并没有加载。原因是现在的模板引擎是Thymeleaf,因此我们需要修改index.html
为Thymeleaf支持。
Thymeleaf的语法参考下面这个pdf
https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.pdf
根据Thymeleaf的语法,注意所有html都需要引入Thymeleaf命名空间
xmlns:th="http://www.thymeleaf.org"
并且url要改写成@{...}
的形式
index.html
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>