SpringBoot引入模板引擎实现视图解析

 更新时间:2022年10月08日 09:36:10   作者:刘婉晴  
这篇文章主要介绍了SpringBoot引入模板引擎实现视图解析方法流程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧

视图解析

SpringBoot 不支持 JSP,需要引入第三方模板引擎进行技术进行页面渲染

1. 视图解析方式

转发、重定向以及自定义视图

2. 使用

在 pom.xml 文件中引入 Starter

   <!--导入Thymeleaf-->
   <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-thymeleaf</artifactId>
   </dependency>

3. 原理

thymeleaf 自动配置类 —— ThymeleafAutoConfiguration.class

@Configuration(proxyBeanMethods = false)
@EnableConfigurationProperties(ThymeleafProperties.class)
@ConditionalOnClass({ TemplateMode.class, SpringTemplateEngine.class })
@AutoConfigureAfter({ WebMvcAutoConfiguration.class, WebFluxAutoConfiguration.class })
public class ThymeleafAutoConfiguration {}

自动配好的策略:

(1)所有的配置值都在 ThymeleafProperties

(2)配好了 SpringTemplateEngine

(3)配好了 ThymeleafViewResolverConfiguration

因此我们只需要开发页面

页面开发规则 —— ThymeleafProperties.class

	public static final String DEFAULT_PREFIX = "classpath:/templates/";
	public static final String DEFAULT_SUFFIX = ".html";

规则解释:

  • 页面放在 /templates/ 里
  • 页面都是 .html

一个小 Demo:

HTML 端

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"> <!--重点一: 导入 thymeleaf-->
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1 th:text="${msg}">haha</h1>  <!--通过th + $ 的方式取出值-->
<h2>
    <a href="www.atguigu.com" rel="external nofollow"  rel="external nofollow"  th:href="${link}" rel="external nofollow" >去百度</a> <!--$符直接取值当成访问路径-->
    <a href="www.atguigu.com" rel="external nofollow"  rel="external nofollow"  th:href="@{/link}" rel="external nofollow" >去百度</a> <!--@符拼接访问路径,自动加前置路径-->
</h2>
</body>
</html>

viewTestController 类

package com.example.demo2.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class viewTestController {
    @GetMapping("/haha")
    public String testhaha(Model model){
        // model 中的数据会被放到请求域中
        model.addAttribute("msg", "要好好学鸭~");
        model.addAttribute("link","https://www.baidu.com/");
        return "success"; // 转发到 success.html (不写后缀)
    }
}

访问 http://localhost:8080/haha 可以看到 thymeleaf 自动帮我们渲染好的页面

到此这篇关于SpringBoot引入模板引擎实现视图解析的文章就介绍到这了,更多相关SpringBoot视图解析内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java动态替换properties文件中键值方式

    Java动态替换properties文件中键值方式

    这篇文章主要介绍了Java动态替换properties文件中键值方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • java Arrays工具类实例详解

    java Arrays工具类实例详解

    这篇文章主要介绍了java Arrays工具类实例详解的相关资料,需要的朋友可以参考下
    2017-07-07
  • MyBatis-Plus自定义SQL和复杂查询的实现

    MyBatis-Plus自定义SQL和复杂查询的实现

    MyBatis-Plus增强了MyBatis的功能,提供注解和XML两种自定义SQL方式,支持复杂查询如多表关联、动态分页等,通过注解如@Select、@Insert、@Update、@Delete实现CRUD操作,本文就来介绍一下,感兴趣的可以了解一下
    2024-10-10
  • spring cache注解@Cacheable缓存穿透详解

    spring cache注解@Cacheable缓存穿透详解

    这篇文章主要介绍了spring cache注解@Cacheable缓存穿透详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Java源码解析HashMap的keySet()方法

    Java源码解析HashMap的keySet()方法

    今天小编就为大家分享一篇关于Java源码解析HashMap的keySet()方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • java网上图书商城(5)购物车模块2

    java网上图书商城(5)购物车模块2

    这篇文章主要为大家详细介绍了java网上图书商城,购物车模块第二篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • Spring中自定义拦截器的使用

    Spring中自定义拦截器的使用

    大家好,本篇文章主要讲的是Spring中自定义拦截器的使用,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02
  • springboot3生成本地文件url的实现示例

    springboot3生成本地文件url的实现示例

    本文主要介绍了springboot3生成本地文件url的实现示例,从而提供一种高效的文件管理方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-01-01
  • Jenkins远程部署war包过程图解

    Jenkins远程部署war包过程图解

    这篇文章主要介绍了Jenkins远程部署war包过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • 基于swagger参数与实体中参数不一致的原因分析

    基于swagger参数与实体中参数不一致的原因分析

    这篇文章主要介绍了基于swagger参数与实体中参数不一致的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11

最新评论