SpringMVC的ViewResolver
来源:互联网 发布:农村淘宝生产投入制度 编辑:程序博客网 时间:2024/06/05 14:59
http://blog.csdn.net/prince2270/article/details/5891085
24.4.2 ViewResolver查找序列(Chain Of ViewResolver)
虽然我们在之前的示例中一直都是使用一个InternalResourceViewResolver进行视图查找,但这并不意味着每个基于Spring MVC的Web应用程序只能使用一个ViewResolver。实际上,Dispatcher- Servlet不但可以接受多个HandlerMapping以处理Web请求到具体Handler的映射,也可以接受多个ViewResolver以处理视图的查找。
DispatcherServlet初始化时,将根据类型扫描自己的WebApplicationContext中定义的ViewResolver。如果查找到存在多个ViewResolver的定义,DispatcherServlet将根据这些ViewResolver的优先级进行排序,然后当需要根据逻辑视图名查找具体的View实例的时候,将按照排序后的顺序遍历这些ViewResolver,只要期间任何一个ViewResolver返回非空的View实例,当前查找即告结束。如果DispatcherServlet没能在当前的WebApplicationContext中找到任何的ViewResolver定义,它将使用InternalResourceViewResolver作为默认的ViewResolver使用。
ViewResolver的优先级的指定使用Ordered接口作为标准,这已经成为Spring框架内设定优先级方式的惯例了。假设我们希望主要使用ResourceBundleViewResolver进行逻辑视图名到具体View实例的查找,如果没能找到,再寻求InternalResourceViewResolver的帮助。我们可以在Dispatcher- Servlet的WebApplicationContext中添加如下配置内容:
- <bean id="resourceBundleViewResolver" ?
- class="org.springframework.Web.servlet.view.
ResourceBundleViewResolver">- <property name="order" value="1"></property>
- </bean>
- <bean id="viewResolver" ?
- class="org.springframework.Web.servlet.view.
InternalResourceViewResolver">- <property name="prefix" value="/WEB-INF/jsp/"/>
- <property name="suffix" value=".jsp"/>
- </bean>
相应ViewResolver的bean定义对应的id或者name属性值是任意的,DispatcherServlet将按照类型来获取ViewResolver。如果没有为某个ViewResolver指定order值的话,默认值为Integer.MAX_ VALUE,对应的是最低优先级。
如果为DispatcherServlet指定多个ViewResolver的话,不要给予InternalResour- ceViewResolver以及其他UrlBasedViewResolver子类过高的优先级,因为这些ViewResolver即使找不到相应的视图,也不会返回null以给我们轮询下一个ViewResolver的机会,这样,我们所指定的其他ViewResolver实际上就形同虚设。合理的处理方式是,给予ResourceBundleView- Resolver或者XmlViewResolver这种能够通过返回null以表明无法找到相应视图的ViewResolver较高的优先级,而只是将InternalResourceViewResolver(或者其他类似行为的ViewResolver)添加为最低优先级ViewResolver,以作为DispatcherServlet的后备查找对象。
- SpringMVC的ViewResolver
- springmvc viewresolver
- SpringMVC可用的ViewResolver实现类
- SpringMVC可用的ViewResolver实现类
- SpringMVC ViewResolver查找序列
- SpringMVC ViewResolver查找序列
- SpringMVC——ViewResolver
- SpringMVC ViewResolver查找序列
- springMVC (八) ViewResolver
- SpringMVC源码 View,ViewResolver
- 集合类自定义排序和springMVC viewResolver的顺序问题
- 13.SpringMVC 视图解析 - ViewResolver
- springmvc如何设置多个同类型的视图器(springmvc 多个 ViewResolver)
- springMVC视图解析器viewResolver的前缀prefix配置成空和/的区别
- SpringMVC 的 Controller 返回各种视图的处理方式(ViewResolver)
- ViewResolver
- SpringMVC介绍之视图解析器ViewResolver
- SpringMVC介绍之视图解析器ViewResolver
- oracle split去逗号,行列转换
- Smallest subarray with sum greater than a given value
- Selec函数
- 操作系统结构(二)
- iOS工具种之16进制颜色转为UIColor
- SpringMVC的ViewResolver
- java根据IP获取用户所在地
- 在网站建设类型中 最常见的几个建站类型
- Windows7下安装和配置Python3+Eric5+Pyqt4的开发环境
- matlab: break与continue的作用
- mysql优化之索引优化
- 功能强大的LODOP
- 马航MH17航班坠毁:一家六口不幸遇难
- 服务器优化网址