Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >SpringMVC的视图解析器:InternalResourceViewResolver

SpringMVC的视图解析器:InternalResourceViewResolver

原创
作者头像
堕落飞鸟
发布于 2023-05-14 02:47:52
发布于 2023-05-14 02:47:52
1.3K00
代码可运行
举报
文章被收录于专栏:飞鸟的专栏飞鸟的专栏
运行总次数:0
代码可运行

Spring MVC 是一个轻量级的 Java web 框架,其核心是基于 Servlet API 构建的。它提供了一种基于 MVC 设计模式的方式来开发 Web 应用程序。其中,视图解析器(View Resolver)是 Spring MVC 框架中非常重要的一部分,它负责将请求处理的结果(模型数据)映射到相应的视图上,以生成最终的响应结果。Spring MVC 框架提供了多种视图解析器,其中 InternalResourceViewResolver 是其中一种。

InternalResourceViewResolver 的作用

InternalResourceViewResolver 是 Spring MVC 中的一种视图解析器,其主要作用是将逻辑视图名称解析为具体的视图对象,以便于处理器返回的数据最终能够渲染成一个具体的页面。它是一个基于 JSP 和 Servlet 的视图解析器,主要负责将逻辑视图名称解析为 JSP 或 Servlet,并通过 RequestDispatcher.forward() 方法进行转发,以达到显示视图的目的。

InternalResourceViewResolver 的配置

配置 InternalResourceViewResolver 非常简单,只需要在 Spring MVC 的配置文件中进行如下配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  <property name="prefix" value="/WEB-INF/views/" />
  <property name="suffix" value=".jsp" />
</bean>

上面的配置中,prefix 属性表示 JSP 文件存放的相对路径,suffix 属性表示 JSP 文件的后缀名。例如上述配置表示将逻辑视图名为 home 的视图解析为 /WEB-INF/views/home.jsp

InternalResourceViewResolver 的使用

在 Spring MVC 中,处理器方法(Controller 方法)通常返回一个 ModelAndView 对象,其中包含了处理结果数据和逻辑视图名称。当 Spring MVC 框架接收到处理器方法返回的 ModelAndView 对象后,会根据配置的视图解析器将逻辑视图名称解析为具体的视图对象,以渲染最终的响应结果。

例如,下面的代码演示了一个简单的处理器方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@RequestMapping("/home")
public ModelAndView home() {
  ModelAndView modelAndView = new ModelAndView();
  modelAndView.addObject("message", "Hello, Spring MVC!");
  modelAndView.setViewName("home");
  return modelAndView;
}

在上面的代码中,我们通过 ModelAndView 对象设置了处理结果数据 message 和逻辑视图名称 home,并将其返回。接下来,Spring MVC 框架会根据配置的视图解析器将逻辑视图名 home 解析为具体的视图对象 /WEB-INF/views/home.jsp,并将处理结果数据传递给该视图进行渲染。

InternalResourceViewResolver 的优缺点

优点:

  1. 配置简单:只需要在 Spring MVC 的配置文件中添加一些简单的配置即可使用。
  2. 与 JSP、Servlet 结合紧密:InternalResourceViewResolver 是一个基于 JSP 和 Servlet 的视图解析器,因此可以轻松地与 JSP、Servlet 等技术进行结合使用。
  3. 可以进行 URL 重写:InternalResourceViewResolver 支持 URL 重写,可以将逻辑视图名称映射为不同的 URL。

缺点:

  1. 仅支持 JSP 和 Servlet:InternalResourceViewResolver 只能将逻辑视图名称解析为 JSP 或 Servlet,因此对于其他类型的视图(如 FreeMarker、Velocity 等)不支持。
  2. JSP 文件需要放置在 WEB-INF 目录下:由于 InternalResourceViewResolver 默认将 JSP 文件解析为 WEB-INF 目录下的 JSP 文件,因此需要将 JSP 文件放置在 WEB-INF 目录下,从而导致 JSP 文件的访问路径变得复杂。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
SpringMVC WebConfig配置视图解析器
在SpringMVC中,视图解析器(View Resolver)用于将逻辑视图名称(例如"home")转换为实际视图(例如JSP、Thymeleaf或FreeMarker模板)。通过使用视图解析器,我们可以将控制器中的逻辑视图名称与实际视图文件解耦,提高应用程序的可维护性和可扩展性。
堕落飞鸟
2023/05/14
8660
SpringMVC 视图解析器 InternalResourceViewResolver
我们在使用SpringMVC的时候,想必都知道,为了安全性考虑,我们的JSP文件都会放在WEB-INF下,
Arebirth
2019/09/24
1.1K0
SpringMVC 视图解析器 InternalResourceViewResolver
深度学习springMVC(五)一篇文章讲清楚 SpringMVC的视图解析器和 自定义视图解析器(看不懂你打我)
我们在使用了SpringMVC后,对于请求的处理由以前我们自己声明 Servlet处理,变为声明单元方法来处理。请求处理完成之后,需要将 处理结果响应给浏览器 ,响应方式有直接响应,请求转发,重定向。对于 请求转发和重定向,我们在单元方法中是通过返回值来告诉 DispatcherServlet如何进行此次请求的响应。而方法的返回值只有一个,所 以,我们就需要在返回值值中声明指定的关键字,让DispatcherServlet可以 通过关键字来区分是请求转发还是重定向,那么DispactherServlet底层是 如何来实现请求转发和重定向的区分的呢?
一写代码就开心
2021/07/08
8360
SpringMVC知识点 总结
MVC模式使应用程序的不同方面(输入逻辑,业务逻辑 和 UI逻辑)分离,同时提供这些元素之间的松耦合。
SuperHeroes
2019/03/12
1.2K0
SpringMVC知识点 总结
SpringMVC组件解析
②DispatcherServlet收到请求调用HandlerMapping处理器映射器。
楠羽
2023/10/17
1980
SpringMVC组件解析
SpringMVC的架构有什么优势?——视图与模型(二)
视图是展示结果的组件,它们负责渲染模型数据并生成HTML输出。Spring MVC支持多种视图技术,包括JSP、Thymeleaf等。 视图(View)是Spring MVC中渲染并呈现结果的组件,它们负责将模型数据渲染成HTML输出。Spring MVC支持多种视图技术,包括JSP、Freemarker、Velocity和Thymeleaf等。下面我们将深入探讨Spring MVC视图的核心概念和相应Java代码示例。
一只
2024/07/02
2240
快速学习-SpringMVC概述
① 解释配置文件的名称定义规则: 实际上也可以不通过 contextConfigLocation 来配置 SpringMVC 的配置文件, 而使用默认的.默认的配置文件为: /WEB-INF/-servlet.xml 3. 加入 Spring MVC 的配置文件:springmvc.xml ① 增加名称空间
cwl_java
2020/02/18
8340
快速学习-SpringMVC概述
【小家Spring】Spring MVC容器的web九大组件之---ViewResolver源码详解---视图解析器ViewResolver详解
Spring的一个优秀之处在于,把view层技术与MVC框架的其他部分离开来。 例如,选择使用Velocity或者XSLT来代替已有的JSP方式只需要修改配置就可以实现。
YourBatman
2019/09/03
8790
【小家Spring】Spring MVC容器的web九大组件之---ViewResolver源码详解---视图解析器ViewResolver详解
《SpringMVC从入门到放肆》七、模型与视图ModelAndView
上一篇我们了解了开发一个Controller的4种方法,如果不记得的朋友可以看看上一篇博文,今天我们来继续了解SpringMVC的模型与视图ModelAndView。
I Teach You 我教你
2019/05/25
5880
SpringMVC学习笔记(一) --- SpringMVC入门
Spring web mvc和Struts2都属于表现层的框架,它是Spring框架的一部分,我们可以从Spring的整体结构中看得出来。
挽风
2021/04/13
4780
SpringMVC学习笔记(一) --- SpringMVC入门
Spring Web MVC框架(四) 视图和视图解析
在Spring中视图相关的两个接口是ViewResolver和View两个接口,ViewResolver用于视图名称和实际视图之间的映射,View接口用于准备和传递数据到实际的视图。
乐百川
2022/05/05
8890
SpringMVC 视图解析器 方法返回值 异常处理器
在Spring MVC中,提供了一个全局异常处理器,用于对系统中出现的异常进行统一的处理。在一般的系统中,DAO,Service及Controller层都出现的异常都以“throws Exception”的形式向上层抛出,最后都会由Spring MVC的前端控制器DispatcherServlet统一由全局异常处理器进行异常处理。
陶然同学
2023/02/24
3790
SpringMVC 视图解析器 方法返回值 异常处理器
硬核!学会SpringMVC从这篇开始
大家好,我是小菜,一个渴望在互联网行业做到蔡不菜的小菜。可柔可刚,点赞则柔,白嫖则刚!
蔡不菜丶
2020/11/11
6890
硬核!学会SpringMVC从这篇开始
SpringMVC的架构有什么优势?——控制器(一)
控制器是Spring MVC中最重要的组件之一,它处理来自客户端的请求并返回响应。控制器通常使用注解或XML配置方式将请求映射到处理方法上。 控制器(Controller)是Spring MVC中最重要的组件之一,它负责接收来自客户端的请求并执行相应的业务逻辑,并将结果返回给客户端。Spring MVC框架提供了多种方式来实现控制器,其中最常用的方式是使用注解或XML配置方式将请求映射到处理方法上。
一只
2024/07/02
2300
SpringMVC的架构有什么优势?——控制器(一)
springMVC系列(二)——两种搭建方式
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
逝兮诚
2019/10/30
3660
springMVC系列(二)——两种搭建方式
从SpringBoot到SpringMVC
用久了SpringBoot,深受其约定大于配置的便利性毒害之后,我想回归到SpringMVC时代,看看SpringMVC开发模式中用户是如何参与的。本文就来体验一下SpringMVC时代开发的流程。
CodeSheep
2018/06/11
6620
从SpringBoot到SpringMVC
SpringMVC详细笔记整合
原文链接: 1、SpringMVC——走出新手村 2、SpringMVC——初次见面 3、SpringMVC——走出新手村
Java学习
2018/07/25
9730
SpringMVC详细笔记整合
SpringMVC系列 MVC设计模式介绍+ SpringMVC的作用及其基本使用+组件解析+注解解析
SpringMvc是一种基于java的实现Mvc设计模式的请求驱动类型的轻量级web框架,属于SpringFrameWork的后续产品,已经融合在Spring Web Flow中
一只胡说八道的猴子
2020/10/09
3.2K0
SpringMVC系列 MVC设计模式介绍+ SpringMVC的作用及其基本使用+组件解析+注解解析
Java EE之SSM框架整合开发 -- (9) Spring MVC入门
本章主要内容:<if>条件元素、<choose>、<when>、<otherwise>分支元素、<trim>、<where>、<set>添加前后缀元素、<foreach>遍历元素、<bind>字符串拼接元素。
浩Coding
2019/07/03
1K0
【框架】126:springMVC框架初体验
Java应用现在基本都是web应用,而Web层自然就是web应用中非常重要的部分了。
刘小爱
2020/08/20
9630
【框架】126:springMVC框架初体验
相关推荐
SpringMVC WebConfig配置视图解析器
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验