java mvc原理图_SpringMVC工作原理之视图解析及自定义

本文详细介绍了SpringMVC的视图解析过程,包括ModelAndView对象的创建、视图View和视图解析器ViewResolver的原理。接着讲解了如何自定义视图,以Excel表格导出为例,创建自定义视图类并实现数据写入Excel的过程,同时提供了自定义视图在Controller中的使用方法。
摘要由CSDN通过智能技术生成

本篇笔记记录分为两大部分:

第一部分主要记录SpringMVC如何解析、渲染视图并转发返回结果对象,主要是针对源码执行过程的追踪。

第二部分记录一个SpringMVC自定义视图步骤及过程。

本篇笔记主要分析SpringMVC 5.1.1 这个版本。

222a1488ec3b720c88c8057db1dac0ae.png

SpringMVC运行流程

一、Spring MVC 视图解析过程

1. ModelAndView

SpringMVC 内部最终会将返回的参数及视图名字封装成一个 ModelAndView 对象,这个对象包含两个部分:Model 是一个 HashMap 集合,View 一般则是一个 String 类型记录要跳转视图的名字或者是视图对象(当然如果是视图对象的话则直接跳过视图解析器的解析过程了)。

60f758a878b55553b7d83ab95b421eb1.png

源码内部最终会根据执行 Controller 里面的方法生成的 ModelAndViewContainer 对象创建 ModelAndView 对象。

SpringMVC 内部最终是借助这个 ModelAndView 对象里面的 View 来选取视图解析器,解析出视图,然后将 Model 里面的键值写进 requestScope 里面,最终呈现给客户端渲染后的视图,不懂这的没关系,咱们接着往下看。

2. View & ViewResolver

在开始源码分析之前,我们先来看下两个基本概念,视图和视图解析器。

2.1 视图 View

视图的作用是渲染模型数据,将模型里的数据以某种形式呈现给客户,其实就是 html、jsp 甚至 word、excel 文件;

为了实现视图模型和具体实现技术的解耦,SpringMVC 定义了一个高度抽象的 View 接口 org.springframework.web.servlet.View。

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

下面来看下 View 接口实现类都有哪些

2bc2da864b11270fd57029cba1759120.png

顺带说下 IDEA 查看接口实现类的方法

0ba91da6ba2835c7d36100e65763aa1b.png

view2.png

我们挑几个常用的了解下

视图

说明

InternalResourceView

将 JSP 或其他资源封装成一个视图,一般 JSP 页面用该视图类

JstlView

继承自InternalRes

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值