本文共 1606 字,大约阅读时间需要 5 分钟。
在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" ?> <beans xmlns= "" xmlns:xsi= "" xmlns:p= "" xmlns:context= "" xmlns: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 "> <!-- 扫描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值),因为不管返回什么视图名称,它都将解析视图。如果它的优先级高于其它解析器的优先级的话,它将使得其它具有较低优先级的解析器没有机会解析视图。
转载地址:http://gieym.baihongyu.com/