2013-01-08 94 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> 
相關問題