2012-11-27 3 views

Répondre

9

Comme vous l'avez déjà noté, cela est possible en XML en supprimant mvc:annotation-driven et les remplacer par l'ensemble équivalent xml:

<bean name="handlerAdapter" class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> 
    <property name="webBindingInitializer"> 
     <bean class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer"> 
      <property name="conversionService" ref="conversionService"></property> 
      <property name="validator"> 
       <bean class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"/> 
      </property> 
     </bean> 
    </property> 
    <property name="messageConverters"> 
     <list> 
      <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/> 
      <bean class="org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter"/> 
      <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/> 
      <bean class="org.springframework.http.converter.StringHttpMessageConverter"></bean> 
      <bean class="org.springframework.http.converter.ResourceHttpMessageConverter"></bean> 
      <bean class="org.springframework.http.converter.xml.SourceHttpMessageConverter"></bean> 
      <bean class="org.springframework.http.converter.xml.XmlAwareFormHttpMessageConverter"></bean> 
     </list> 
    </property> 
</bean> 

<bean name="handlerMapping" class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"> 
    <property name="useTrailingSlashMatch" value="true"></property> 
</bean> 
+0

Cela fonctionne mais cette duplication n'est pas bonne – scarba05

+3

Ne fonctionne plus avec Spring 3.2 – ALOToverflow

0

Ajoutez ce qui suit à votre fichier de configuration de ressort pour basculer le champ useTrailingSlashMatch.

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"> 
    <property name="useTrailingSlashMatch" value="true"> 
    </property> 
</bean> 
+4

J'ai déjà essayé cela. 'mvc: annotation-driven' crée un autre RequestMappingHandlerMapping. J'ai déclaré sur ma question. – Cemo

1

Pouvez-vous essayer avec Java config pour remplacer RequestMappingHandlerMapping valeur

@Configuration 
@ComponentScan(basePackages = "base.package.name") 
public class WebAppConfig extends WebMvcConfigurationSupport { 

    @Override 
    @Bean 
    public RequestMappingHandlerMapping requestMappingHandlerMapping() { 
     RequestMappingHandlerMapping rmh = super.requestMappingHandlerMapping(); 
     rmh.setUseTrailingSlashMatch(false); 
     return rmh; 
    } 
} 
+1

J'ai déjà résolu en remplaçant la configuration complète de xml par Java. Mais j'avais aussi essayé celui-ci qui ne m'a pas aidé. – Cemo

+0

D'accord, Java config a travaillé pour vous; Bien. Si vous avez le temps, veuillez mettre à jour le post en ajoutant les détails de votre résolution. Il va fournir des têtes pour les téléspectateurs à venir :) – jeevatkm

+1

En fait, j'ai la même intention. Mais ma solution n'est pas la réponse à la question. La vraie solution doit être basée sur la configuration XML. – Cemo

1

Si vous souhaitez une solution qui n'implique pas de fonctionnalité de duplication dans Spring, vous pouvez remplacer le composant DisplatcherServlet. dans un conteneur Servlet 3.0 cela pourrait ressembler à:

@WebServlet(name="spring-dispatcher", loadOnStartup=1, urlPatterns={"/"}, 
     initParams={ 
      @WebInitParam(name="contextConfigLocation", 
      value="/WEB-INF/spring/spring-dispatcher-servlet.xml")}) 
public class MyDispatcherServlet extends DispatcherServlet { 

    @Override 
    protected void initStrategies(ApplicationContext context) { 
     super.initStrategies(context); 
     for (RequestMappingInfoHandlerMapping handlerMapping 
       : BeanFactoryUtils.beansOfTypeIncludingAncestors(
        context, RequestMappingInfoHandlerMapping.class, true, false).values()) { 

      handlerMapping.setUseTrailingSlashMatch(false); 
     } 
    } 
} 
+0

J'ai écrit un blog à ce sujet http://www.scarba05.co.uk/blog/2013/03/configure-the-default -handlermapping-fourni-par-mvcannotation-driven-in-spring-3-2 / – scarba05

Questions connexes