Springboot视图解析与模板引擎~

news2024/11/18 9:56:42

视图解析:

springboot默认不支持JSP,需要引入第三方模板引擎技术实现页面渲染

视图处理方式:转发,重定向,自定义视图

thymeleaf的使用:

1:引入starter

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

2:自动配置好了Thymeleaf,查看ThymeleafAutoConfiguration源码如下所示:

@AutoConfiguration(
    after = {WebMvcAutoConfiguration.class, WebFluxAutoConfiguration.class}
)
@EnableConfigurationProperties({ThymeleafProperties.class})
@ConditionalOnClass({TemplateMode.class, SpringTemplateEngine.class})
@Import({TemplateEngineConfigurations.ReactiveTemplateEngineConfiguration.class, TemplateEngineConfigurations.DefaultTemplateEngineConfiguration.class})
public class ThymeleafAutoConfiguration {

自动装配的策略:
1:所有thymeleaf的配置值都在ThymeleafProperties
2:配置好了SpringTemplateEngine
3:配置好了ThymeleafViewResolver

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

开发:

package com.example.demo.Controller;

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


@Controller

public class ViewControllerTest {
    @GetMapping("/hello")
    public String show(Model model){
        model.addAttribute("msg","你好,springboot");
        model.addAttribute("link","http://www.baidu.com");
        return "success";
    }
}

必须在html页面中引入thymeleaf取值空间xmlns:th="http://www.thymeleaf.org

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1 th:text="${msg}" >哈哈</h1>
<h2>
<!--它是一个服务器端的变量表达式,需要在服务器端进行解析和替换,所以需要使用Thymeleaf来解析。这种方式可以实现动态跳转,因为${link}可以在服务器端根据条件动态生成不同的URL -->
  <a href="www.hello.com" th:href="${link}" >去百度1</a>
<!--它是Thymeleaf的URL语法,会根据应用程序的上下文自动解析和替换URL。这种方式适用于在模板文件中直接写死跳转的URL,不能实现动态跳转 -->
  <a href="www.hello.com" th:href="@{/link}" >去百度1</a>
</h2>
</body>
</html>

springboot启动项目:

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Demo3Application {
    public static void main(String[] args) {
        SpringApplication.run(Demo3Application.class, args);
    }
}

在这里插入图片描述
因此如果我们想通过第二种写法实现跳转到百度页面,那么正确写法如下所示:

 <a href="www.hello.com" th:href="@{/http://www.baidu.com}">去百度2</a>

并且这两种写法还有一个区别就是如果我们给当前项目设置了上文访问路径,那么第二种写法会自动的将将其补上,如下所示:

我们设置了项目的访问路径为demo

server:
  servlet:
    context-path: /demo

通过重启项目后,检查页面源码如下所示:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1099486.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

windows环境下定时备份删除mysql文件bat脚本

1、新建一个xx.bat结尾的文件复制已下内容 rem ******MySQL backup start******echo off::删除一周前的备份数据forfiles /p "D:\mysql_backup" /m backup_*.sql -d -7 /c "cmd /c del /f path"::设置时间变量set "Ymd%date:~0,4%%date:~5,2%%date:~…

田字描红贴

<html> <title>田字描红贴</title> <head> <style> canvas { border:1px solid gray; } </style> </head> <body> <div align"center"><canvas id"canvas"></canvas></div> <…

【Mysql】Mysql的字符集和比较规则(三)

字符集和比较规则简介 字符集简介 我们知道在计算机中只能以二进制的方式对数据进行存储&#xff0c;那么他们之间是怎样对应并进行转换的&#xff1f;我们需要了解两个概念&#xff1a; 字符范围&#xff1a;我们可以将哪些字符转换成二进制数据&#xff0c;也就是规定好字…

专业144,总分440+,上岸西北工业大学827西工大信号与系统考研经验分享

我的初试备考从4月末&#xff0c;持续到初试前&#xff0c;这中间没有中断。 总的时间分配上&#xff0c;是数学>专业课>英语>政治&#xff0c;虽然大家可支配时间和基础千差万别&#xff0c;但是这么分配是没错的。 数学 时间安排&#xff1a;3月-7月&#xff1a;…

【LeetCode高频SQL50题-基础版】打卡第9天:第46~50题

文章目录 【LeetCode高频SQL50题-基础版】打卡第9天&#xff1a;第46~50题⛅前言患某种疾病的患者&#x1f512;题目&#x1f511;题解 第二高的薪水&#x1f512;题目&#x1f511;题解 按日期分组销售产品&#x1f512;题目&#x1f511;题解 列出指定时间段内所有的下单产品…

apache shiro安全框架反序列化漏洞

用linux搭建一个环境 配置下源vi /etc/apt/sources.list 源如果是kali官方的有时候会下载不了&#xff0c;改成中科大的源 更新下源apt-get update 安装docker-compose 重启kali 启动docker容器 apt-get install docker apt-get install docker-compose reboot service do…

Sql Server 数据库中的所有已定义的唯一约束 (列名称 合并过了)

查询Sql Server Database中的唯一约束 with UniqueBasic as (SELECTtab.name AS TableName, -- 表名称idx.name AS UniqueName, -- 唯一约束的名称col.name AS UniqueFieldName -- 唯一约束的表字段FROMsys.indexes idxJOIN sys.index_columns idxColON (idx.object_id idxCo…

windows环境下搭建redis5.x集群

下载windows版本redis5.x redis.windows.conf内容修改如下&#xff1a; # 端口 &#xff08;注意&#xff1a;改为每个文件夹对应的端口&#xff0c;分别为6379、6380、6381、6382、6383、6384&#xff09; port 6379 # 允许创建集群 appendonly yes cluster-enabled…

【UE5 Cesium】18-Cesium for Unreal 建立飞行跟踪器(3)

本篇博客在上一篇【UE5 Cesium】17-Cesium for Unreal 建立飞行跟踪器&#xff08;2&#xff09;基础上&#xff0c;实现变速飞行的效果。 步骤 1. 打开“BP_Aircraft” 可以看到飞机的运动主要是通过“设置Actor变换”实现的&#xff1a; 最根源是由于“插值”节点中“Alpha…

day01——禁用按钮和输入框等组件

1.代码展示 <button :disabled"true" click"printId">Print ID {{ resultId }}</button> 2.非禁用情况 <button :disabled"false" click"printId">Print ID {{ resultId }}</button> 3.禁用情况 <butt…

notepad++ 批量替换删除指定字符之后 或者 之前的字符,Notepad+批量替换使用大全

notepad 批量替换删除指定字符之后 或者 之前的字符&#xff0c;Notepad批量替换使用大全 资源宝分享&#xff1a;www.httple.net 注意: 不支持多行表达式 (involving \n, \r, etc). 1 基本表达式 符号解释.匹配任意字符&#xff0c;除了新一行(\n)。也就是说 “.”可以匹配 \…

内容分发网络CDN分布式部署真的可以加速吗?原理是什么?

Cdn快不快&#xff1f;她为什么会快&#xff1f;同样的带宽为什么她会快&#xff1f;原理究竟是什么&#xff0c;同学们本着普及知识的想法&#xff0c;我了解的不是很深入&#xff0c;适合小白来看我的帖子&#xff0c;如果您是大佬还请您指正错误的地方&#xff0c;先谢谢大佬…

本机配置SSH连接代码仓库

一、创建SSH 1. 查看是否之前有过ssh&#xff0c;在终端输入。 cd ~/.ssh 如果显示No such file or directory &#xff0c;表示之前没有创建过ssh&#xff0c;直接进入下一步&#xff1b;如果可以直接进入需要先清理rss&#xff0c;终端执行命令&#xff1a; mkdir key_b…

docker拉取镜像错误missing signature key

参考地址&#xff1a;docker拉取镜像错误 missing signature key-CSDN博客 linux系统&#xff0c;使用docker拉取的时候&#xff0c;报错如下 missing signature key 就一阵莫名其妙&#xff0c;之前还好好的&#xff0c;突然就不行了 按照网上说的方法&#xff0c;查看doc…

华为数通方向HCIP-DataCom H12-831题库(单选题:261-280)

第261题 某网络通过部署1S-IS实现全网与通,若在一台IS-IS路由器的某接口下配置命令isis timer holding multiplier 5 level-2,则以下关于该场景的描述,正确的是哪一项? A、该接口Level-2邻居保持时间为5秒 B、该接口Level-1邻居保持时间为30秒 C、该接口为点对点链路接口 …

MySQL 8.0 OCP (1Z0-908) 考点精析-架构考点6:InnoDB Tablespaces之系统表空间(System Tablespace)

文章目录 MySQL 8.0 OCP (1Z0-908) 考点精析-架构考点6&#xff1a;InnoDB Tablespaces之系统表空间&#xff08;System Tablespace&#xff09;系统表空间&#xff08;System Tablespace&#xff09;主要系统变量innodb_data_file_path关于autoextend和max属性系统表空间文件默…

猫头虎博客带您使用Markdown编辑器

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

山西电力市场日前价格预测【2023-10-17】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-10-17&#xff09;山西电力市场全天平均日前电价为337.57元/MWh。其中&#xff0c;最高日前电价为437.22元/MWh&#xff0c;预计出现在18: 30。最低日前电价为281.67元/MWh&#xff0c;预计…

微服务docker部署实战

docker基础和进阶(*已掌握的可以跳过 *) 基础 docker基础 进阶 docker进阶 准备工作 提前准备好mysql和redis的配置&#xff0c;如下 在/zzq/mysql/conf目录下配置mysql配置文件my.cnf [client] #设置客户端字符集 default_character_setutf8 [mysqld] #开启定时任务 event_s…

Android组件通信——广播机制:BroadcastReceiver(二十九)

1. BroadcastReceiver 1.1 知识点 &#xff08;1&#xff09;掌握广播接收器的主要作用及基本实现&#xff1b; &#xff08;2&#xff09;可以使用广播启动Service&#xff1b; &#xff08;3&#xff09;理解闹钟服务的使用&#xff1b; 1.2 具体内容 广播这个名词大家…