2013-01-08 43 views
0

由于一些业务/技术限制,我们应该使用spring3 MVC多视图解析器(JSP和Velocity)。我试图在网上搜索,但我找不到完美的解决方案。可能是别人经历过相同的情况。所以请你让我知道是否有可能使用JSP和Velocity的作为vew解析器在SPring3 MVC应用程序Spring 3 MVC多视图解析器(Jsp和Velocity)

所有帮助表示赞赏。

+0

你可以有多个视图解析器 [你可能需要阅读这个链接的内容](http://stackoverflow.com/questions/2288272/multiple-view-resolvers-in-spring-mvc) –

回答

1

Spring支持多个视图解析器。您可以通过向应用程序上下文添加多个解析器来链接视图解析器,并使用order属性指定排序。

可以使用链这些JSP和速度一样 -

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

<bean id="velocityConfig" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer"> 
    <property name="resourceLoaderPath" value="/WEB-INF/velocity/"/> 
</bean> 

<bean id="viewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver"> 
    <property name="cache" value="true"/> 
    <property name="prefix" value=""/> 
    <property name="suffix" value=".vm"/> 
    <property name="order" value="1" /> 
</bean> 

了解更多有关视图链接here

+2

以上将不会工作Avinash,原因是基于JSP的ViewResolver具有更高的优先级,它会得到首先选择,基于JSP的viewresolver的问题在于它是对Req的调用uestDispatcher,它永远不会返回一个空视图,让调度员尝试不同的视图解析器。在我的答案中,基于JSP的视图解析器是最后一个。 –

+0

thnx建议.....更新了订单 –

+0

非常感谢Biju Kunjummen和Avinash T的详细解释。 – user1635014

0

是的,这是可以配置多个视图解析器,只要确保您订购的速度比基于JSP视图解析器一个更高:

<bean id="viewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver" p:order="0"> 
    ... 
</bean 


<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:order="1"> 
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> 
    <property name="prefix" value="/WEB-INF/jsp/"/> 
    <property name="suffix" value=".jsp"/> 
</bean> 
相关问题