SpringMVC笔记--6视图解析InternalResourceViewResolver

SpringMVC视图解析器:InternalResourceViewResolver配置与使用 在SpringMVC框架中,视图解析器是连接控制器和视图的关键组件,负责将控制器返回的逻辑视图名转换为实际的视图对象。作为SpringMVC最常用的视图解析器之一,InternalResourceViewResolver主要用于解析JSP页面和其他Web应用服务器内部资源。通过合理配置InternalResourceViewResolver,可以实现视图解析的灵活控制,简化控制器代码,提高应用的可维护性。本文将深入探讨InternalResourceViewResolver的工作原理、配置方法和实际应用场景 阅读详情

第6章 视图解析

6.1 SpringMVC如何解析视图概述

1) 不论控制器返回一个String、ModelMap还是View,都会转换为【ModelAndView】对象,由视图解析器解析视图(ModelAndView中的数据,最终得到视图对象,然后视图对象再负责转发或重定向),然后,进行页面的跳转。

2) 视图解析源码分析:重要的两个接口

3) 断点调试源码

4) 流程图

6.2 视图和视图解析器

1) 请求处理方法执行完成后,最终返回一个 ModelAndView 对象。对于那些返回 String,View 或 ModeMap 等类型的处理方法,Spring MVC 也会在内部将它们装配成一个 ModelAndView 对象,它包含了逻辑名和模型对象的视图

2) Spring MVC 借助视图解析器(ViewResolver)得到最终的视图对象(View),最终的视图可以是 JSP ,也可能是 Excel、JFreeChart等各种表现形式的视图

3) 对于最终究竟采取何种视图对象对模型数据进行渲染,处理器并不关心,处理器工作重点聚焦在生产模型数据的工作上,从而实现 MVC 的充分解耦

视图是由视图解析器解析得到的

6.3 视图

1) 视图的作用是渲染模型数据,将模型里的数据以某种形式呈现给客户,主要就是完成转发或者是重定向的操作.

2) 为了实现视图模型和具体实现技术的解耦,Spring 在 org.springframework.web.servlet 包中定义了一个高度抽象的 View 接口:

3) 视图对象由视图解析器负责实例化。由于视图是无状态的,所以他们不会有线程安全的问题

6.4 常用的视图实现类

6.5 JstlView

1) 若项目中使用了JSTL,则SpringMVC 会自动把视图由InternalResourceView转为 JstlView

(断点调试,将JSTL的jar包增加到项目中,视图解析器会自动修改为JstlView)

2) 若希望直接响应通过 SpringMVC 渲染的页面,可以使用 mvc:view-controller 标签实现

<mvc:view-controller path="springmvc/testJsTView " view-name="success">

6.5.1 实验代码

1)增加jstl标签 jar包(断点调试,这时的View对象就是JstlView)

6.6 视图解析器

1) SpringMVC 为逻辑视图名的解析提供了不同的策略,可以在 Spring WEB 上下文中配置一种或多种解析策略,并指定他们之间的先后顺序。每一种映射策略对应一个具体的视图解析器实现类。

2) 视图解析器的作用比较单一:将逻辑视图解析为一个具体的视图对象。

3) 所有的视图解析器都必须实现 ViewResolver 接口:

6.7 常用的视图解析器实现类

1) 程序员可以选择一种视图解析器或混用多种视图解析器

2) 每个视图解析器都实现了 Ordered 接口并开放出一个 order 属性,可以通过 order 属性指定解析器的优先顺序,order 越小优先级越高。order的默认值是最大整数

3) SpringMVC 会按视图解析器顺序的优先顺序对逻辑视图名进行解析,直到解析成功并返回视图对象,否则将抛出 ServletException 异常

4) InternalResourceViewResolver

① JSP 是最常见的视图技术,可以使用 InternalResourceViewResolve作为视图解析器:

②

6.8 mvc:view-controller标签

1)若希望直接响应通过 SpringMVC 渲染的页面,可以使用 mvc:view-controller 标签实现

<!-- 直接配置响应的页面:无需经过控制器来执行结果 -->
<mvc:view-controller path="/success" view-name="success"/>

path是请求,view-name是return值。作用是不经过handler直接跳转页面。就不用写requestmapping方法了

2)请求的路径:

http://localhost:8080/SpringMVC_02_View/success

3)配置mvc:view-controller会导致其他请求路径失效

此时RequestMapping都失效了。

解决办法:

配置了mvc:view-controller之后,会导致RequestMapping的映射失效,因此需要加上annotation
<!-- 在实际开发过程中都需要配置mvc:annotation-driven标签,后面讲,这里先配置上 -->
<mvc:annotation-driven/>

6.9 重定向/转发

1) 关于重定向

① 一般情况下,控制器方法返回字符串类型的值会被当成逻辑视图名处理

② 如果返回的字符串中带 forward: 或 redirect: 前缀时,SpringMVC 会对他们进行特殊处理:将 forward: 和 redirect: 当成指示符,其后的字符串作为 URL 来处理

③ redirect:success.jsp:会完成一个到 success.jsp 的重定向的操作

④ forward:success.jsp:会完成一个到 success.jsp 的转发操作

2) 定义页面链接

<a href="springmvc/testRedirect">testRedirect</a>

3) 定义控制器方法

@RequestMapping("/testRedirect")
    public String testRedirect(){
        System.out.println("testRedirect");
        return "redirect:/index.jsp";
        //return "forward:/index.jsp";
	}
}
SpringMVC 视图解析器 InternalResourceViewResolver   我们在使用SpringMVC的时候,想必都知道,为了安全性考虑,我们的JSP文件都会放在WEB-INF下,      但是我们在外部是不可以直接访问/WEB-INF/目录下的资源对吧,      只能通过内部服务器进行转发的形式进行访问,那么InternalResourceViewResolver底层通过转发形式帮我们解决了这个问题!      为了使用InternalResourceView... 阅读详情

相关推荐

springMVC4(13)视图解析器分类详解

在 《springMVC4(7)模型视图方法源码综合分析》 中,我们介绍了ModelAndView的用法,它会在控制层方法调用完毕后作为返回值返回,里面封装好了我们的业务逻辑数据和视图对象或视图名 。下一步,视图对象往往会对模型进一步渲染,再由视图解析器进一步解析并向前端发出响应。在下面,我们详细介绍视图和视图解析器的各种分类。 在View接口中,定义了一个核心方法是: void rend

总结沉淀 5466

springMVC之InternalResourceViewResolver

InternalResourceViewResolver用于访问诸如JSP、HTML、XHTML这样的view。它扩展了UrlBasedViewResolver,因此有2个属性:prefix和suffix。UrlBasedViewResolver使用前缀和后缀中定义的值,将逻辑视图转换成真实路径的资源URL。有2种方式配置InternalResourceViewResolver:XML配置和java配置。

lzf的博客 8467

【SpringMVC笔记05】SpringMVC中的视图解析器

这篇文章主要介绍了SpringMVC中几种常用的视图解析器。

✅ Java 开发工程师 2845

笔记29 视图解析 ——InternalResourceViewResolver

Spring自带了13个视图解析器,能够将逻辑视图名转换为物理实现 首先将会介绍 InternalResourceViewResolver,这个视图解析器一般会用来 解析JSP视图。  1.  Spring提供了两种支持JSP视图的方式:  InternalResourceViewResolver会将视图名解析为JSP文 件。另外,如果在你的JSP页面中使用了JSP标准标签库 (...

lyj2018gyq的博客 1382

四旋翼无人机Matlab建模

本文主要分享一下四旋翼无人机的建模过程,然后在Matlab的simulink模块搭建起四旋翼无人机的模型,下一章将结合这个模型设计双环PID控制器并调节参数。 一、无人机建模过程

qq_36903625的博客 3万+

Cursor 详细使用

Cursor 是一款基于 VSCode 开发的 AI 驱动代码编辑器,集成 GPT-4、Claude3.5 等先进 LLM,具备代码补全、生成、解释、调试等功能,可提升开发效率和代码质量。3. 代码编辑:在编辑区编写代码,利用快捷键提升效率,如 Ctrl+Space 触发智能代码补全、Ctrl+K 润色或修改代码、Ctrl+L 智能问答与代码编辑。3. 代码解释:选中代码,按 Ctrl+L,输入如 “解释这段代码的功能”,Cursor 会给出详细解释。

坚持写博客,大家的关注是我前进的动力! 4811

Spring MVC InternalResourceViewResolver原理解析

接收到逻辑视图名后,会根据之前配置的前缀和后缀来构建完整的JSP路径。例如,如果逻辑视图名为"home",并且前缀为"/WEB-INF/views/“,后缀为”.jsp",那么解析后的JSP路径就是"/WEB-INF/views/home.jsp"。它根据逻辑视图名(通常是控制器返回的字符串)来解析出具体的JSP页面路径。它通过配置前缀和后缀来构建JSP页面的物理路径,并将逻辑视图名解析为具体的JSP页面。主要用于解析JSP视图,将逻辑视图名解析为JSP物理路径。这样配置后,当控制器返回一个逻辑视图名时,

qq_32868023的博客 1435

RabbitMq安装

本文详细介绍了在CentOS7系统上离线部署RabbitMQ4.3.2的完整流程。主要内容包括:1)准备RabbitMQ安装包、Erlang依赖和socat网络工具;2)安装系统编译依赖并编译安装Erlang;3)部署RabbitMQ服务,配置环境变量和socat依赖;4)启用Web管理插件并创建管理员账号;5)配置防火墙放行端口;6)设置Systemd开机自启服务;7)提供常用运维命令。文档特别强调离线部署注意事项,包括socat依赖、版本兼容性、账号安全及主机名配置等问题,为生产环境部署提供完整解决方案

sinat_25821779的博客 321

【Java从零到架构师第③季】【31】SpringMVC-InternalResourceViewResolver_自定义InternalResourceView

持续学习&持续更新中… 守破离 【Java从零到架构师第③季】【31】SpringMVC-InternalResourceViewResolver_自定义InternalResourceViewInternalResourceViewResolver基本使用配置多个忽略InternalResourceViewResolver方法一方法二自定义InternalResourceView为什么要自定义InternalResourceView?自定义InternalResourceView参考 Inte.

Keep Reading Keep Writing Keep Thinking 845

测站坐标系统 -- 东北天(ENU)坐标系、站心坐标系

测站坐标系统以观测站(或地面上某一个观测点为中心建立坐标系统,将这类坐标系称为测站坐标系统。测站坐标系通常以用户所在的位置点P为坐标原点三个坐标轴分别是相互垂直的东向北向和天向,因而测站坐标系又称为东北天(ENU)坐标系。由于测站坐标系以站心为坐标原点,因此也称为站心坐标系。如图所示,测站坐标系的天向与大地坐标系(LLA经纬度坐标系)在此点的高程方向一致。测站坐标系固定在地球上,本质上是一种地固坐标系。(1)以站心为坐标原点。(2)Z轴与站心点的椭球法线重合,向上为正。

qq_43381998的博客 1万+

【Gin框架入门到精通系列01】Gin框架介绍与环境搭建

本文是Gin框架入门到精通系列的第一篇,系统介绍Gin框架的基本概念、核心特性以及环境搭建。无论你是Go语言新手还是有经验的开发者,都能通过本文快速掌握Gin框架的基础知识,创建并运行你的第一个Gin应用。

GopherTribe的博客 1559

SpringMVC视图解析器InternalResourceViewResolver

  今天在搭建SpringMVC开发框架的时候,出现freemarker的视图没有找到,报404错误。我的配置代码如下: &lt;!--freemarker --&gt; &lt;mvc:view-controller path="/" view-name="homepage/index”/&gt; &lt;!-- jsp --&gt; &lt;mvc:view-controller p...

我的笔记 1744

在 VS Code 里配置 SAP Joule for Developers 的 ABAP AI side-by-side 能力

摘要: 随着ABAP开发工具链的演进,VS Code逐渐融入ABAP开发流程,SAP Joule for Developers的ABAP AI能力通过side-by-side模式(基于BTP中央服务)为多系统开发提供统一AI支持。该模式避免了各ABAP后端独立升级AI能力的碎片化问题,由管理员配置BTP订阅URL后,开发者可在ADT或VS Code中全局调用。实际落地需注意角色分工(管理员配置服务,开发者填写URL)、AI units资源规划及配置细节(如区分全局与项目级设置)。建议将Joule URL纳入

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 120

InternalResourceViewResolver是Spring MVC中的一种视图解析器

它通常与视图控制器一起使用,将请求的逻辑视图名称解析为实际的视图对象,然后进行渲染和展示。这样,当控制器返回一个逻辑视图名时,InternalResourceViewResolver会将前缀、逻辑视图名和后缀拼接起来,得到具体的视图文件路径,然后返回给客户端。在Spring MVC配置文件中,可以通过配置InternalResourceViewResolver的属性来设置视图解析器的行为,例如设置视图文件的存放路径、前缀和后缀等。它用于将逻辑视图名称解析为具体的视图对象,并将其呈现给用户。

[Blog][Domain] programb.blog.youkuaiyun.com 1375

即梦(Dreamina)技术浅析(六):多模态生成模型

多模态生成模型的目标是结合不同模态的数据(如文本和图像),生成新的视觉内容。其核心思想是利用文本描述引导图像或视频的生成过程,使得生成结果能够准确反映用户的意图。

m0_75253143的博客 1332

使用 Simulink 和 Simscape Electrical 工具箱设计一个 Buck 转换器系统

Buck 转换器(降压转换器)是一种常用的 DC-DC 转换器,用于将较高的输入电压转换为较低的输出电压。为了评估其抗干扰能力,我们可以在模型中引入不同的干扰源,并观察系统的响应情况。电网电压波动:输入电压的变化。负载突变:负载电阻或电感的变化。电磁干扰:高频噪声或脉冲干扰。通过模拟这些干扰,我们可以分析系统的动态响应特性,并采取相应的措施来提高系统的抗干扰能力。

xiaoheshang_123的博客 377

SpringMVC 视图解析流程 [ 以 InternalResourceView 和 InternalResourceViewResolver 为例 ] (SpringMvc 5.0.8)

1.先来看下DispatcherServlet类的doDispatch()方法 protected void doDispatch(HttpServletRequest request, HttpServletResponse response) throws Exception { HttpServletRequest processedRequest = request; Handle...

yangfanor的专栏 2589

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

SpringMVC_视图解析(解析过程、视图、常见视图解析器、重定向)

本篇文章讲述了SpringMVC的视图是怎么进行解析的,讲解了视图、视图解析器以及常用的视图解析器实现类。

斗鹰的技术专栏 1965

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

SpringMVC 视图解析器

1.视图解析器 会 根据 把控制器返回的逻辑视图名 确定渲染模型的视图文件的物理位置。 Spring MVC的一个重要特性:将控制器中处理请求的逻辑 和 视图中渲染实现 解耦。 控制器方法和视图实现 只会在模型内容上保持一致,这是两者最大的关联。 2.Spring提供了13个视图解析器,能够将逻辑视图名 转换为 物理实现。其中 每一项都对应Java Web应用中特定的某种视图技术。 ...

dream_heheda的博客 6478

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

SpringMVC视图解析器

SpringMVC视图解析器 前言    在前一篇博客中讲了SpringMVC的Controller控制器,在这篇博客中将接着介绍一下SpringMVC视图解析器。当我们对SpringMVC控制的资源发起请求时,这些请求都会被SpringMVC的DispatcherServlet处理,接着Spring会分析看哪一个HandlerMapping定义的所有请求映射中存在对该请求的最合理的映射。然后

Elim的博客 1万+

springMVC初探视图解析器——InternalResourceViewResolver

springmvc在处理器方法中通常返回的是逻辑视图,如何定位到真正的页面,就需要通过视图解析器。 springmvc里提供了多个视图解析器,InternalResourceViewResolver就是其中之一: 最常用的视图解析器:InternalResourceViewResolver   当处理器返回“index”时,InternalResourceViewR

马万明的专栏 2万+

springmvc的InternalResourceViewResolver 配置

1、视图解析InternalResourceViewResolver org.springframework.web.servlet.view.InternalResourceViewResolver InternalResourceViewResolver类的作用: InternalResourceViewResolver会将视图名解析为JSP文件。另外,如果在你的JSP页面中使用了JSP标准...

weixin_40277684的博客 3713

SpringMVC InternalResourceViewResolver视图解析器

• JSP 是最常见的视图技术,可以使用 InternalResourceViewResolver 作为视图解析器: • 若项目中使用了 JSTL,则 SpringMVC 会自动把视图由 InternalResourceView 转为 JstlView • 若使用 JSTL 的 fmt 标签则需要在 SpringMVC 的配置文件中配置国际化资源文件 <%-- Created...

Hern(宋兆恒) 987

SpringMVC-视图和视图解析器

视图(View)和视图解析器(ViewResolver)的工作流程: 当请求处理方法处理完请求之后,会返回String、ModelAndView、或View对象,如return “success”,但这三种返回值最终都会被SpringMVC统一转化为ModelAndView对象,随后Spring就会用ViewResolver,把返回的ModelAndView对象中的View渲染给用户看。 1.视图...

故园 4045

springmvc中如何正确的解析视图InternalResourceViewResolver

今天写界面遇到一个奇怪的问题,从controlller返回了正确的视图路径,在springmvc进行render的时候总是变成了相对路径, 例如从contrller的路径是:/a/b  返回的路径是:"c/d",实际render的时候却是:/a/b/c/d . 现象如下图所示: /admin/sys/user是controller的路径,admin/user/userlist.jsp是视图的

jia_zhengshen的专栏 5809

SpringMVC的视图和视图解析器

Spring MVC 支持 ModelAndView、Model、Map、View、String 多种类型的返回值,但无论控制器方法的返回值是哪种类型,Spring MVC 内部最终都会将它们封装成一个 ModelAndView 对象,它由 model(模型数据)和 view(逻辑视图名)两部分组成,所以 Spring MVC 需要借助 ViewResolver(视图解析器)将 逻辑视图名解析为真正的 View 视图对象,然后才能响应给客户端展示。视图解析器用来解析逻辑视图,将其解析成真正的视图。

yu的博客 1082
上一篇: SpringMVC笔记--5处理响应数据ModelAndView
下一篇: SpringMVC笔记--7综合案例RESTRUL_CRUD
hancoder
博客等级 码龄9年 4135粉丝 167原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值