2013-01-08 2 views
0

En raison de certaines contraintes métier/techniques, nous devons utiliser les résolveurs à vues multiples spring3 MVC (JSP et Velocity). J'ai essayé de chercher sur le net mais je n'ai pas trouvé de solution parfaite. Peut-être que quelqu'un d'autre a vécu le même scénario. Alors Pourriez-vous s'il vous plaît laissez-moi savoir est-il possible d'utiliser JSP et Velocity comme résolveurs vew dans l'application SPring3 MVCSpring 3 MVC résolveurs à vues multiples (Jsp et Velocity)

Toute aide est appréciée.

+0

Vous pouvez avoir plusieurs vue résolveurs [Vous pouvez lire le contenu de ce lien ] (http://stackoverflow.com/questions/2288272/multiple-view-resolvers-in-spring-mvc) –

Répondre

1

soutien printemps multiples vue de résolveurs. Vous associez les résolveurs d'affichage en ajoutant plusieurs résolveurs à votre contexte d'application et utilisez la propriété order pour spécifier l'ordre.

vous pouvez utiliser la chaîne de ces jsp et de la vitesse comme -

<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> 

En savoir plus au sujet de vue enchaînant here

+2

Ce qui précède ne fonctionnera pas Avinash, la raison en est que le ViewResolver basé sur JSP a une priorité plus élevée qu'il obtiendra choisi en premier et le problème avec viewresolver basé sur JSP est que c'est un appel à Req uestDispatcher et il ne reviendra jamais avec une vue null pour que le répartiteur puisse essayer un résolveur de vue différent. Il est essentiel comme dans ma réponse pour que le résolveur de vue basé sur JSP soit le dernier. –

+0

thnx pour suggestion ..... mis à jour la commande –

+0

Merci beaucoup Biju Kunjummen et Avinash T pour l'explication de détail. – user1635014

0

Oui, il est possible de configurer plusieurs résolveurs vue, juste vous assurer que vous commandez la vitesse supérieure à un résolveur de vue sur la base 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>