SpringBoot整合thymeleaf

创建模块(工程)

SpringBoot整合thymeleaf_第1张图片

使用脚手架进行依赖添加

SpringBoot整合thymeleaf_第2张图片

在idea中 有 时候mavne不能自动构建项目这个时候 需要我们手动的添加模块在maven管理工具中

  1. 点击右侧的maven菜单
  2. 点击菜单中的+号
  3. 选择我们要添加的模块或者项目

SpringBoot整合thymeleaf_第3张图片

推荐习惯:每次创建项目或者工程的时候 ,检查一下idea中的maven是不是当前本地的maven环境

SpringBoot整合thymeleaf_第4张图片

当前项目中的依赖

  
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-thymeleafartifactId>
        dependency>
        
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-webartifactId>
        dependency>
        
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-devtoolsartifactId>
            <scope>runtimescope>
            <optional>trueoptional>
        dependency>
        
        <dependency>
            <groupId>org.projectlombokgroupId>
            <artifactId>lombokartifactId>
            <optional>trueoptional>
        dependency>
        
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-testartifactId>
            <scope>testscope>
        dependency>

配置thymeleaf

在全局配置文件中配置Thymeleaf模板的一些参数。如设置模板缓存、模板编码、模板样式、指定模板页面存放路径、指定模板页面名称的后缀

配置文件不要去背诵不要去自己写

thymeleaf页面缓存设置(默认为true),开发中方便调试应设置为false,上线稳定后应保持默认true

spring.thymeleaf.cache = false
spring.thymeleaf.encoding = UTF-8   
spring.thymeleaf.mode = HTML5   
spring.thymeleaf.prefix = classpath:/templates/  
spring.thymeleaf.suffix = .html   

推荐使用yml格式 但是本次的测试中使用properties文件配置

SpringBoot整合thymeleaf_第5张图片

上面的配置 其实是Springboot中内置的 也可以不用配置 使用上面的配置可以更加灵活的处理我们的Thymeleaf

其他:Spring Boot默认将/**所有访问映射到以下目录(所有的请求)

  • classpath:/META-INF/resources/:项目类路径下的META-INF文件夹下 的resources文件夹下的所有文件。
  • classpath:/resources/:项目类路径下的resources文件夹下的所有文件。
  • classpath:/static/:项目类路径下的static文件夹下的所有文件
  • classpath:/public/:项目类路径下的public文件夹下的所有文件

创建控制类

package top.yxqz.thymeleaf.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

import java.util.Calendar;

/**
 * 学习Thymeleaf的控制层
 */
@Controller
public class LoginController {
    /**
     * toLoginPage: 请求的路由
     * @param model 来自于Spring中的,官方推荐使用Model来封装数据
     * @return 跳转的页面,不是数据 页面的后缀以及页面所在的目录 都是已经在SpringBoot中配置好了的 在templates目录下 后缀是.html
     * 以上的配置 可以通过操作Thymeleaf 的配置文件进行自定义
     */
    @GetMapping("/toLoginPage")
    public String toLoginPage(Model model){
//        设置内容到Model域对象中 功能是获取当前年份
        model.addAttribute("currentYear", Calendar.getInstance().get(Calendar.YEAR));
        return "login";
    }
}

创建模板页面并引入静态资源文件

创建一个用户登录的模板页面login.html,部分参考代码如下

引入的资源结构如图所示

SpringBoot整合thymeleaf_第6张图片

效果测试

你可能感兴趣的:(SpringBoot框架,spring,boot,模板方法模式,java-ee,servlet,spring)