Spring MVC视图解析器:配置多个视图解析器的优先级

简介:

问题

在Spring MVC应用程序中,我们经常需要应用一些视图解析器策略来解析视图名称。例如,联合使用三个视图解析器:InternalResourceViewResolver、ResourceBundleViewResolver和XmlViewResolver。

但是,如果返回了一个视图的名称,那么,使用哪一个视图解析器策略?

解决方法

如果应用了多个视图解析器策略,那么就必须通过“order”属性来声明优先级,order值越低,则优先级越高。例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?xml version= "1.0"  encoding= "UTF-8"  ?>
        xmlns:context= "http://www.springframework.org/schema/context"
        xmlns:mvc= "http://www.springframework.org/schema/mvc"
        xsi:schemaLocation="http: //www.springframework.org/schema/beans
        http: //www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http: //www.springframework.org/schema/context
        http: //www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
 
     <!-- 扫描web包,应用Spring的注解 -->
     <context:component-scan base- package = "com.xxx.training" />
 
 
     <bean  class = "org.springframework.web.servlet.view.ResourceBundleViewResolver" >
         <property name= "basename" >
             <value>spring-views</value>
         </property>
         <property name= "order"  value= "0"  />
     </bean>
 
     <bean  class = "org.springframework.web.servlet.view.XmlViewResolver" >
         <property name= "location" >
             <value>/WEB-INF/spring-views.xml</value>
         </property>
         <property name= "order"  value= "1"  />
     </bean>
 
     <bean id= "viewResolver"
           class = "org.springframework.web.servlet.view.InternalResourceViewResolver"  >
         <property name= "prefix" >
             <value>/WEB-INF/pages/</value>
         </property>
         <property name= "suffix" >
             <value>.jsp</value>
         </property>
         <property name= "order"  value= "2"  />
     </bean>
 
</beans>

  注意:InternalResourceViewResolver必须总是赋予最低的优先级(最大的order值),因为不管返回什么视图名称,它都将解析视图。如果它的优先级高于其它解析器的优先级的话,它将使得其它具有较低优先级的解析器没有机会解析视图。

目录
相关文章
|
6月前
|
XML 缓存 前端开发
Spring MVC视图解析器
Spring MVC视图解析器
51 1
|
6月前
|
XML 前端开发 安全
Spring Mvc 拦截器详解
Spring Mvc 拦截器详解
68 0
|
5月前
|
前端开发 Java Spring
Spring MVC拦截器+注解方式实现防止表单重复提交
Spring MVC拦截器+注解方式实现防止表单重复提交
|
3月前
|
前端开发 Java 应用服务中间件
掌握Spring MVC拦截器整合技巧,实现灵活的请求处理与权限控制!
掌握Spring MVC拦截器整合技巧,实现灵活的请求处理与权限控制!
|
4月前
|
前端开发 JavaScript Java
Spring Boot中Spring MVC的基本配置讲解与实战(包括静态资源配置,拦截器配置,文件上传配置及实战 附源码)
Spring Boot中Spring MVC的基本配置讲解与实战(包括静态资源配置,拦截器配置,文件上传配置及实战 附源码)
53 1