spring MVC之按名称解析视图(四)
----------
用多个解析器解析视图
如果在web应用程序中有许多视图,只选择一种视图解析策略通常是不够的。InternalResourceViewResolver通常可以解析大多数的内部JSP视图,但是还有其他的视图类型必须通过ResourceBundleViewResolver进行解析。在这种情况下,就必须结合两种策略来进行视图解析。
<beans...> ... <bean class="org.springframework.web.servlet.view.ResourceBundleViewResolver"> <property name="basename" vlaue="views"/> <property name="order" value="0"/> </bean> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> <property name="order" vlaue="1"/> </bean> </beans>
当同时选择不止一种策略时,重要的是要指定解析优先级。为此,可以设置视图解析器Bean的order属性。order值越小,表示优先级越高。请注意,应该给InternalResourceViewResolver分配最低的优先级别,因为无论它是否存在,始终都会用它来解析视图。因此,如果其他解析器的优先级别比较低,就没有机会解析视图了。
现在views.properties应该只包含不能通过InternalResourceViewResolver解析的视图(如:重定向视图)。
welcomeRedirect.(class)=org.springframework.web.servlet.view.RedirectView
welcomeRedirect.url=welcom.htm