ViewResolver视图解析器简单介绍
导⾔:同学们有没有想过这样⼀个问题,就是客户端每次请求之后,Spring MVC是怎么把请求响应成⼀个视图的?相信很多同学清楚如何使⽤,却不清楚Spring MVC⾥⾯是如何返回视图,那么,今天我们就来探讨⼀下,Spring MVC 是如何解析客户端请求响应成视图的。
springmvc选择题1、什么是Spring MVC?MVC分别代表什么,作⽤是?
Spring MVC是Spring Framework的⼀部分,是基于Java实现MVC的轻量级Web框架。
M:model 模型,业务流程,业务逻辑。
V:视图,渲染数据。
C:控制:接收客户端请求,分配任务。
作⽤:轻量⾼效独⽴开发,可扩展可维护可复⽤可测试 -->实现了业务逻辑与数据展⽰分离,各模块最⼤限度解耦,独⽴开发。
2、在解析过程中有⼀个很重要的⾓⾊——视图解析器。视图解析器(ViewResolver)是什么?
在Spring MVC控制器中,所有的客户端请求处理⽅法(Action)必须解析出⼀个逻辑视图名称,⽆论是显式的(返回String,View或ModelAndView)还是隐式的(基于约定的,如视图名就是⽅法名)。视图解析器的作⽤是将逻辑视图转为物理视图,所有的视图解析器都必须实现ViewResolver接⼝。
Spring处理视图最重要的两个接⼝是ViewResolver和View。ViewResolver接⼝在视图名称和真正的视图之间提供映射关系;⽽View接⼝则处理请求将真正的视图呈现给⽤户。
3、SpringMVC的视图解析流程。
1、调⽤⽬标⽅法,SpringMVC将⽬标⽅法返回的String、View、ModelMap或是ModelAndView都转换为⼀个ModelAndView对象;
2、然后通过视图解析器(ViewResolver)对ModelAndView对象中的View对象进⾏解析,将该逻辑视图View对象解析为⼀个物理视图View对象;
3、最后调⽤物理视图View对象的render()⽅法进⾏视图渲染,得到响应结果。
4、对于控制器的⽬标⽅法,⽆论其返回值是String、View、ModelMap或是ModelAndView,SpringMVC都会在内部将它们封装为⼀个ModelAndView对象进⾏返回。
Spring MVC 借助视图解析器(ViewResolver)得到最终的视图对象(View),最终的视图可以是JSP,HTML也可是Excell、 JFreeChart 等各种表现形式的视图。
SpringMVC为逻辑视图名的解析提供了不同的策略,可以在Spring WEB上下⽂中配置⼀种或多种解析策略,并指定他们之间的先后顺序。每⼀种映射策略对应⼀个具体的视图解析器实现类。程序员可以选择⼀种视图解析器或混⽤多种视图解析器。可以通过order属性指定解析器的优先顺序,order越⼩优先级越⾼,SpringMVC会按视图解析器顺序的优先顺序对逻辑视图名进⾏解析,直到解析成功并返回视图对象,否则抛出ServletException异常。
为了实现视图模型和具体实现技术的解耦,Spring在org.springframwork.web.servlet包中定义了⼀个⾼度抽象的View接⼝。
各个视图解析器之间的关系:
4、理解什么是“基于URL” 的视图解析器(重点)。
⽐如我们的 Controller 中最后的返回的处理代码为: return "index"; 那么“基于URL” 的视图解析器就会将返回值 “index” 作为最后视图的URL 的⼀部分,然后结合上⾯的配置和,最后得到最终的URL:
"/WEB-INF/jsp/" + "index" + ".jsp" == "/WEB-INF/jsp/index.jsp"

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。