基础3-视图与视图解析器

本文详细介绍了SpringMVC框架中的视图解析过程,包括如何将请求处理方法的返回值转换为ModelAndView对象,视图解析器ViewResolver的作用及其实现原理,以及如何处理逻辑视图名和特定前缀如forward:和redirect:的情况。
摘要由CSDN通过智能技术生成

请求处理方法执行完成后,最终返回一个ModelAndView对象,即便返回类型是String、View、ModelMap等类型,SpringMVC也会在内部将他们转换成一个ModelAndView对象,从而变成一个既包含逻辑名,又包含了模型对象的视图;

SpringMVC通过视图解析器ViewResolver来得到视图对象View;视图View的作用就是渲染模型数据,将模型里的数据以某种形式呈现给用户,在设计层面为了实现视图模型和具体实现技术的解耦,MVC定义了org.springframework.web.servlet.View接口,该接口主要有2个方法:getContentType/render;视图对象由视图解析器来实例化,鉴于视图View是无状态的,所以不会有线程安全问题。

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

视图解析器的作用比较单一:将逻辑视图解析为一个具体的视图对象;所有的视图解析器都必须实现ViewResolver接口;

一般情况下,控制器方法返回字符串类型的值会被当成逻辑视图名来处理,但如果返回的字符串中带有forward:或者redirect:前缀时,SpringMVC则会对字符串进行特殊处理:将forward:和redirect:当成指示符,其后面的字符串作为URL来处理;

redirect:重定向

forward:转发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值