Spring多个备份视图解析器

时间:2016-08-30 06:32:26

标签: spring spring-mvc

我正在使用带有spring mvc 3的weblogic门户,并且要求在视图解析器中有一些备份jsp文件,以防找不到jsp,那么应该从第二个路径尝试它,如下面的代码所示:

<bean
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass"
            value="org.springframework.web.servlet.view.JstlView" />
        <property name="prefix" value="/WEB-INF/jsp/path1/" />
        <property name="suffix" value=".jsp" />
        <property name="order" value="1" />
    </bean>

    <bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
        <property name="viewClass"
            value="org.springframework.web.servlet.view.JstlView" />
        <property name="prefix" value="/portlet/application/path2/" />
        <property name="suffix" value=".jsp" />
        <property name="order" value="2" />
    </bean>

我读过有关在视图解析器中添加order这样做的内容,但同样没有对此提出任何建议。

1 个答案:

答案 0 :(得分:1)

首先InternalResourceViewResolver should have largest order(优先级较低)

  

链接ViewResolvers时,UrlBasedViewResolver将检查指定的资源是否确实存在。但是,对于InternalResourceView,通常不可能预先确定目标资源的存在。在这种情况下,对于任何给定的视图名称,UrlBasedViewResolver将始终返回View;因此,它应该被配置为链中的最后一个ViewResolver

但遗憾的是,这两个解析器无法链接,因为InternalResourceViewResolver扩展UrlBasedViewResolver因此始终会解析视图,并且无法委托给下一个ViewResolver