springMVC初探视图解析器——InternalResourceViewResolver

pringmvc在处理器方法中一般返回的是逻辑视图,如何定位到真正的页面,就须要经过视图解析器。spring

springmvc里提供了多个视图解析器,InternalResourceViewResolver就是其中之一:mvc

最经常使用的视图解析器:InternalResourceViewResolverjsp

image

 

当处理器返回“index”时,InternalResourceViewResolver解析器会自动添加前缀和后缀:/WEB-INF/jsp/index.jspblog

注意:这里的order表示视图解析的优先级,数目越小优先级越大(即:0为优先级最高,因此优先进行处理视图),get

InternalResourceViewResolver在项目中的优先级必须设置为最低,也就是order要最大。否则它会阻碍其余string

视图解析器。为何呢?方法

解释以下:im

咱们知道,当处理器返回逻辑视图时(也就是return “string”),要通过视图解析器链,前面的解析器能处理的,就不会继续往下传播。项目

若是不能处理就要沿着解析器链继续寻找,直到找到合适的视图解析器(归纳为:能解析的,不继续往下找,不能解析的,要继续往下找解析器)。img

看下面的图:

假如咱们有几个视图解析器:视图解析器一、视图解析器二、视图解析器3。如图

image

 

当处理器(@controller)返回的逻辑视图解析过程:

当通过视图解析器1时,若是能解析就解析并且不会再继续往下。若是不能执行就返回null,这样下面的解析器才能处理。

可是对于解析器InternalResourceViewResolver来讲,无论能不能解析它都不会返回null,也就是说它拦截了全部的逻辑视图,

让后续的解析器得不到执行,因此InternalResourceViewResolver必须放在最后。

记住一点:不能解析就返回null,这样后续解析器才能解析

相关文章
相关标签/搜索