InternalResourceViewResolver请求流程

当用户对SpringMVC应用程序发起请求时,这些请求都会被 DispatcherServle t处理,通过处理器找到最为合适的 HandlerMapping定义的请求映射中最为合适的映射,然后通过HandlerMapping找到相对应的Handler,然后再通过相对应的 HandlerAdapter 处理该Handler。返回结果是一个ModelAndView对象,当该ModelAndView对象中不包含真正的视图,而是一个逻辑视图路径的时候,InternalResourceViewResolver就会把该逻辑视图路径解析为真正的View视图对象,然后通过View的渲染,将最终结果返回给用户。

 

我们通过在Spring配置文件中配置如下代码使用InternalResourceViewResolver

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
	p:prefix="/WEB-INF/view/" p:suffix=".jsp"></bean>

视图解释器将逻辑视图转换为物理视图:将handler方法(如UserInfoController中的do方法)返回值解析为实际的物理视图,InternalResourceViewResolver视图解析器将handler方法返回值解析为"prefix+返回值+suffix"物理视图,并做请求转发操作
 

当发起请求时到达 DispatcherServlet 类里的 doService()

 在向request里放如众多信息之后执行DispatcherServlet 的doDispatch()方法

在第一个方框中,ha是一个HandlerAdapter,该方法调用目标方法,返回一个ModelAndView对象,无论目标方法返回String类型、ModelMap类型、ModelAndView类型还是View类型,SpringMVC都会转化成一个ModelAndView类型对象。

在第二个方框中,代码用于处理视图,进入该方法

在第一个方框中 如果出现异常,则进入异常映射。

在第二方框中,该方法用于渲染视图

在第一个方框中,View是一个接口,在方框中定义的是一个抽象类。而在改行代码下,则是依次按情况对view赋值。

在第二个方框中,执行该代码,通过解析ViewName(视图名)得到视图。

在第三个方框中,该方法用于真正地渲染视图。鼠标点击该行代码,点击Ctrl+t,选择AbstractView,进入AbstractView抽象类的render方法

 在执行上述红框中,该方法用于合并结果和模型,依旧鼠标点击该行代码,点击Ctrl+t,选择InternalResourceView,进入InternalResourceViewrenderMergedOutputModel方法,

上面红框代码可知该响应为request转发。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值