springMVC初探视图解析器——InternalResourceViewResolver

springmvc在处理器方法中通常返回的是逻辑视图,如何定位到真正的页面,就需要通过视图解析器。

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

最常用的视图解析器:InternalResourceViewResolver

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

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

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

视图解析器。为什么呢?

解释如下:

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

如果不能处理就要沿着解析器链继续寻找,直到找到合适的视图解析器(概括为:能解析的,不继续往下找,不能解析的,要继续往下找解析器)。

看下面的图:

假如我们有几个视图解析器:视图解析器1、视图解析器2、视图解析器3。如图

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

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

但是对于解析器InternalResourceViewResolver来说,不管能不能解析它都不会返回null,也就是说它拦截了所有的逻辑视图,

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

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

时间: 2024-10-20 23:14:49

springMVC初探视图解析器——InternalResourceViewResolver的相关文章

springMVC初探视图解析器——ResourceBundleViewResolver

视图解析器ResourceBundleViewResolver是根据proterties文件来找对应的视图来解析”逻辑视图“的, 该properties文件默认是放在classpath路径下的views.properties文件,当然可以通过basename属性更改: <bean class="org.springframework.web.servlet.view.ResourceBundleViewResolver"> <property name="b

springMVC初探视图解析器——XmlViewResolver

XmlViewResolver解析器 XmlViewResolver基于XML文件中的视图bean来解析“逻辑视图”.XmlViewResolver默认会从/WEB-INF/views.xml中加载视图bean, 当然你也可以自己设置该xml文件的位置,该解析器有个属性“location”可设置xml位置 当处理器返回“逻辑视图”(假设返回”jsonview“)时,解析器XmlViewResolver会在对应的views.xml文件中 寻找Id为jsonview的Bean,如果找到就处理. vi

学习SpringMVC——说说视图解析器

各位前排的,后排的,都不要走,咱趁热打铁,就这一股劲我们今天来说说spring mvc的视图解析器(不要抢,都有位子~~~) 相信大家在昨天那篇如何获取请求参数篇中都已经领略到了spring mvc注解的魅力和套路了.搭上@RequestMapping的便车,我们可以去到我们想去的地方(方法)去,借助@RequestParam.@PathVariable等我们可以得到请求中想要的参数值,最终还能够通过神奇的“return SUCCESS”到达我们的目的地.今天主要就来说说在达到目的地的路上,我们

SpringMVC中视图解析器

视图解析器:固定写法直接coppy就行 1.dispatcherServlet-servlet.xml中添加 <!-- 视图解析器InternalResourceViewResolver --> <!-- 对转向页面的路径解析.prefix:前缀, suffix:后缀 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" > <pr

SpringMVC 视图解析器 InternalResourceViewResolver

我们在使用SpringMVC的时候,想必都知道,为了安全性考虑,我们的JSP文件都会放在WEB-INF下, 但是我们在外部是不可以直接访问/WEB-INF/目录下的资源对吧, 只能通过内部服务器进行转发的形式进行访问,那么InternalResourceViewResolver底层通过转发形式帮我们解决了这个问题! 为了使用InternalResourceViewResolver我们都会在SpringMVC的配置文件中进行如下配置 <!-- 自定义视图解析器 --> <bean id=&

SpringMVC -- @ModelAttribute/视图,视图解析器/国际化

@ModelAttribute 这个注解注释比较多.. 我自己都有点看懵逼了... 还是在原来的例子上的Demo.... @ModelAttribute 和视图解析,以及国际化 我都写一起了,就不分开了.. package com.springmvc.handlers; import com.springmvc.model.User; import com.springmvc.model.User2; import org.springframework.stereotype.Controlle

SpringMvc 视图解析器常见功能、类型转换、格式化

springmvc.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframewo

SpringMvc:视图和视图解析器

请求处理方法执行完成后,最终返回一个ModelAndView对象,对于返回String,View或ModelMap等类型的处理方法,SpringMvc也会在内部将它们装配成一个ModelAndView对象的,它包含了逻辑名和模型对象的视图. SpringMvc借助视图解析器(ViewResolver)得到最终的视图对象(View),最终的视图可能是JSP,也可能是Excel等各种表现形式的视图.对于最终采取何种视图对象对模型数据进行渲染,处理器并不关心,处理器的工作重点聚焦在生产模型数据的工作上

Spring MVC系列:(2)视图解析器、URL映射器、适配器

1.默认的URL映射器.适配器和视图解析器 SpringMVC提供了默认的URL映射器.适配器和视图解析器. 在上一文中,springmvc-helloworld.xml内容如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"     xmlns:mvc="http://