由於一些業務/技術限制,我們應該使用spring3 MVC多視圖解析器(JSP和Velocity)。我試圖在網上搜索,但我找不到完美的解決方案。可能是別人經歷過相同的情況。所以請你讓我知道是否有可能使用JSP和Velocity的作爲vew解析器在SPring3 MVC應用程序Spring 3 MVC多視圖解析器(Jsp和Velocity)
所有幫助表示讚賞。
由於一些業務/技術限制,我們應該使用spring3 MVC多視圖解析器(JSP和Velocity)。我試圖在網上搜索,但我找不到完美的解決方案。可能是別人經歷過相同的情況。所以請你讓我知道是否有可能使用JSP和Velocity的作爲vew解析器在SPring3 MVC應用程序Spring 3 MVC多視圖解析器(Jsp和Velocity)
所有幫助表示讚賞。
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
以上將不會工作Avinash,原因是基於JSP的ViewResolver具有更高的優先級,它會得到首先選擇,基於JSP的viewresolver的問題在於它是對Req的調用uestDispatcher,它永遠不會返回一個空視圖,讓調度員嘗試不同的視圖解析器。在我的答案中,基於JSP的視圖解析器是最後一個。 –
thnx建議.....更新了訂單 –
非常感謝Biju Kunjummen和Avinash T的詳細解釋。 – user1635014
是的,這是可以配置多個視圖解析器,只要確保您訂購的速度比基於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>
你可以有多個視圖解析器 [你可能需要閱讀這個鏈接的內容](http://stackoverflow.com/questions/2288272/multiple-view-resolvers-in-spring-mvc) –