我尝试使用 2 个视图解析器:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<context:component-scan base-package="com.evgeni.dfr.controller" />
<context:annotation-config />
<mvc:annotation-driven />
<bean id="viewResolver"
class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="cache" value="false" />
<property name="viewClass" value="com.evgeni.drf.faces.FacesView" />
<property name="prefix" value="/WEB-INF/pages/" />
<property name="suffix" value=".xhtml" />
<property name="order" value="1" />
</bean>
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/views/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
<property name="order" value="0" />
</bean>
</beans>
该应用程序始终只使用具有最低顺序的一个,而不使用另一个。在当前情况下,如果我的控制器返回“someView”,The requested resource (/MyProject/WEB-INF/views/someView.jsp) is not available.
即使有“pages/someView.xhtml”,应用也会响应。
春季版 - 3.2.3
编辑:如果我在控制器中有 2 个方法,并且 methodA 返回“viewA”,methodB 返回“viewB”。我们在“views”文件夹中有 viewA.jsp,在“pages”中有 viewB.xhtml。
案例1:UrlBasedViewResolver -> order=1,InternalResourceViewResolver -> order=2
方法A-> The requested resource (/MyProject/WEB-INF/pages/viewA.xhtml) is not available.
;
methodB -> OK
案例2:UrlBasedViewResolver -> order=2,InternalResourceViewResolver -> order=1
方法A->确定;
methodB -> `The requested resource (/MyProject/WEB-INF/views/viewB.jsp) is not available.`;