SpringMVC ---- SpringMVC的视图

news2024/11/17 11:37:08

SpringMVC ---- SpringMVC的视图

  • 1. ThymeleafView
  • 2. 转发视图
  • 3. 重定向视图
  • 4. 视图控制器view-controller

SpringMVC 中的视图是 View 接口,视图的作用是渲染数据,将模型 Model 中的数据展示给用户
SpringMVC 的视图种类很多,默认有转发视图和重定向视图
当工程引入 jstl 的依赖,转发视图会自动转换为 JstlView
若使用的视图技术为 Thymeleaf,在 SpringMVC 的配置文件中配置了 Thymeleaf 的视图解析器,由此视图解析器解析之后所得到的是 ThtmeleafView

1. ThymeleafView

当控制器方法中所设置的视图名称没有任何前缀时,此时的视图名称会被 SpringMVC 配置文件中所配置的配置视图解析器解析,视图名称拼接视图前缀和视图后缀所得到的最终路径,会通过转发的方式实现跳转

    @RequestMapping("/testThymeleafView")
    public String testHello(){
        return "success";
    }

在这里插入图片描述

2. 转发视图

SpringMVC 中默认的转发视图是 InternalResourceView
SpringMVC 中创建转发视图的情况:
当控制器方法中所设置的视图名称以 “forward:” 为前缀时,创建 InternalResourceView 视图,此时的视图名称不会被 SpringMVC 配置文件中所配置的视图解析器解析,而是会将前缀 “forward:” 去掉,剩余部分作为最终路径通过转发的方式实现跳转

例如:“forward:/”,“forward:/testThymeleafView”

    @RequestMapping("/testForward")
    public String testForward(){
        return "forward:/testThymeleafView";
    }

在这里插入图片描述

3. 重定向视图

SpringMVC 中默认的重定向视图是 RedirectView
当控制器方法中所设置的视图名称以 “redirect:” 为前缀时,创建 RedirectView 视图,此时的视图名称不会被 SpringMVC 配置文件中所配置的视图解析器解析,而是会将前缀 “redirect:” 去掉,剩余部分作为最终路径通过重定向的方式实现跳转

例如:例如"redirect:/",“redirect:/testThymeleafView”

    @RequestMapping("/testRedirect")
    public String testRedirect(){
        return "redirect:/testThymeleafView";
    }

在这里插入图片描述

注:
重定向视图解析时,会先将 redirect: 前缀去掉,然后会判断剩余部分是否以 / 开头,若是则自动拼接上下文路径

4. 视图控制器view-controller

当控制器方法中,仅仅用来实现页面跳转,即只需要设置视图名称时,可以将处理器方法使用 view-controller 标签进行表示

<!--
	path:设置处理的请求地址
	view-name:设置请求地址所对应的视图名称
-->
<mvc:view-controller path="/testView" view-name="success"></mvc:view-controller>

注:
当 SpringMVC 中设置任何一个 view-controller 时,其他控制器中的请求映射将全部失效,此时需要在 SpringMVC 的核心配置文件中设置开启 mvc 注解驱动的标签:
<mvc:annotation-driven />

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

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

相关文章

[附源码]SSM计算机毕业设计“云味坊”购物网站JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

振弦采集模块的通讯协议( IIC)

振弦采集模块的通讯协议&#xff08; IIC&#xff09; IIC 通讯协议本身即是基于设备地址和寄存器的物理层通讯协议&#xff0c; VMXXX 使用 IIC 接口对传感器的访问&#xff0c;请遵循前述硬件接口时序及协议说明即可。 IIC 访问时使用与 UART 相同的寄存器地址&#xff0c;地…

【云原生-Docker】使用 Docker Compose 管理容器

&#x1f341;博客主页&#xff1a;&#x1f449;不会压弯的小飞侠 ✨欢迎关注&#xff1a;&#x1f449;点赞&#x1f44d;收藏⭐留言✒ ✨系列专栏&#xff1a;&#x1f449;Docker学习专栏 ✨学习社区&#xff1a;&#x1f449;不会压弯的小飞侠 ✨知足上进&#xff0c;不负…

5种方法实现(a==1 a==2 a==3) == true

乍一看&#xff0c;这个咋能相等呢&#xff1f;深入思考就发现不仅可以相等&#xff0c;还有不少方法&#xff0c;下面就来讲讲这些方法都是如何实现的。 一、valueOf && toString 直接上代码&#xff1a; 比较运算分为2种&#xff0c; 一种为严格比较()&#xff0c;…

【设计模式】类图

本文主要介绍类图的概念、类之间的关系以及如何用类图表示类和类之间的关系 类图&#xff1a; 是一种静态结构图&#xff0c;是系统分析和设计阶段的重要产物。 类图画法&#xff1a; 1. 类的表示方式 类的表示中包含类名、属性 和 方法&#xff0c; 其中&#xff0c; 表示…

C++ Reference: Standard C++ Library reference: Containers: deque: deque: empty

C官网参考链接&#xff1a;https://cplusplus.com/reference/deque/deque/empty/ 公有成员函数 <deque> std::deque::empty C98 bool empty() const; C11 bool empty() const noexcept;测试容器是否为空 返回deque容器是否为空&#xff08;即其size是否为0&#xff09;…

大一Web课程设计:企业网站——HTML+CSS+JavaScript电子购物商城(37页面)

常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他等网页设计题目, A…

VIAVI唯亚威FI-10/-11 光纤识别仪

FI-10 和 FI-11 手持式光纤识别仪稳固可靠&#xff0c;易于安装和维护&#xff0c;能够检测通过单模光纤传输的光信号&#xff0c;从而识别出光纤。它们采用局部检测技术&#xff08;非破坏性宏弯检测&#xff09;&#xff0c;从而不再需要在接合点处打开光纤进行识别&#xff…

【好文鉴赏】优秀的后端应该有哪些开发习惯

关键词&#xff1a;[后端] [编程习惯] [代码风格] 原文链接&#xff1a; https://juejin.cn/post/7072252275002966030https://www.51cto.com/article/721104.html 这里涉及到的主要是 Java 语言&#xff0c;当然也有通用的一些习惯&#xff1b; 拆分合理的目录结构 受传统的…

Spring Cloud网关路由谓词

目录 一、前言 1、注意事项 2、词汇表 3、工作原理 二、配置路由谓词工厂 1、快捷方式 1.1、快捷方式配置 1.2、完全展开的参数 2、路由谓词工厂 2.1、路由谓词工厂之后 2.2、路线谓词工厂之前 2.3、路由谓词工厂之间 3、Cookie路线谓词工厂 4、标头路由谓词工厂 …

Rust机器学习之Polars

Rust机器学习之Polars 本文将带领大家学习Polars的基础用法&#xff0c;通过数据加载→\rarr→数据探索→\rarr→数据清洗→\rarr→数据操作一整个完整数据处理闭环&#xff0c;让大家学会如何用Polars代替Pandas进行数据处理。 本文是“Rust替代Python进行机器学习”系列文…

Golang入门笔记(5)—— 流程控制之switch分支

switch 有切换&#xff0c;开关的意思&#xff0c;我想这也许就是代码上的意义&#xff0c;通过表达式计算出一个值&#xff0c;然后进行状态的匹配和然后进行流程上的切换。 基本语法&#xff1a; switch 表达式 {case 值a1,值a2, ...语句块case 值b1&#xff0c;值b2, ...语…

[附源码]计算机毕业设计JAVA高校资源共享平台

[附源码]计算机毕业设计JAVA高校资源共享平台 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybati…

IOT云平台 simple(4)springboot netty实现简单的mqtt broker

常见的开源mqttBroker很多&#xff0c;如&#xff1a; Mosquitto、emqx&#xff1b; 这里简单的介绍了mqtt&#xff0c;然后利用springboot netty实现了简单的mqtt Broker。 mqtt Broker&#xff1a;springboot netty实现&#xff1b; mqtt client&#xff1a;MQTT.fx工具软件…

Java Tomcat内存马——filter内存马

目录 前言&#xff1a; &#xff08;一) 内存马简介 0X01 原理 0X02 内存马类型 2.1 servlet-api类 2.2 spring类 2.3 Java Instrumentation类 &#xff08;二&#xff09; filter 内存马 &#xff08;三&#xff09;Tomcat Filter 流程分析 0x01 项目搭建 0x02 在访…

【Spring】——5、@Lazy懒加载

&#x1f4eb;作者简介&#xff1a;zhz小白 公众号&#xff1a;小白的Java进阶之路 专业技能&#xff1a; 1、Java基础&#xff0c;并精通多线程的开发&#xff0c;熟悉JVM原理 2、熟悉Java基础&#xff0c;并精通多线程的开发&#xff0c;熟悉JVM原理&#xff0c;具备⼀定的线…

【BOOST C++ 12 函数式编程】(5) Boost.Lambda

一、说明Boost.Lambda 在 C11 之前&#xff0c;您需要使用像 Boost.Lambda 这样的库来利用 lambda 函数。从 C11 开始&#xff0c;这个库可以被视为已弃用&#xff0c;因为 lambda 函数现在是编程语言的一部分。如果您在不支持 C11 的开发环境中工作&#xff0c;您应该在转向 B…

大空间享大智慧 奇瑞新能源奇瑞大蚂蚁

在亲子消费市场上家庭消费已经成为了主力军。亲子消费的重心已经从以饮食、服装为主向教育、游乐等方向多元化发展。而在出行方面汽车的品质与驾乘感受也是如今消费者选择的主要需求。所以实惠、安全、环保的新能源大空间SUV成为了越来越多二胎、三胎家庭的最终选择。奇瑞新能源…

线程池使用

转载&#xff1a;线程池详解&#xff08;通俗易懂超级好&#xff09;_拉格朗日(Lagrange)的博客-CSDN博客_线程池 目录 基本概念 什么是线程池 线程池优点 线程池源码 ThreadPoolExecutor 参数解释 具体使用 线程池的工作原理 线程池的参数 任务队列&#xff08;w…

元数据管理-解决方案调研一:元数据概述

一、元数据概述 1.1、定义 元数据定义&#xff1a;描述数据的数据&#xff0c;对数据及信息资源的描述性信息。小编认为元数据不仅仅是关于数据的数据&#xff0c;它还是一种上下文&#xff0c;赋予信息更加丰富的身份。 以图片为例&#xff0c;其图片本身是一种数据&#xf…