2012-11-27 30 views

risposta

9

Come avete già notato, questo è fattibile in XML rimuovendo mvc:annotation-driven e la sostituzione con l'intera xml equivalente:

<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

Funziona ma questa duplicazione non è buona – scarba05

+3

Non funziona più con Spring 3.2 – ALOToverflow

0

Aggiungere quanto segue al file di configurazione della molla per alternare il campo useTrailingSlashMatch.

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

Ho già provato questo. 'mvc: annotation-driven' sta creando un altro RequestMappingHandlerMapping. Ho affermato sulla mia domanda. – Cemo

1

Puoi provare con Java config per eseguire l'override RequestMappingHandlerMapping valore

@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

Ho già risolto sostituendo l'intera configurazione xml con uno java programmatico. Ma avevo anche provato questo che non mi ha aiutato. – Cemo

+0

Ok, la configurazione di Java ha funzionato per te; Buona. Se hai tempo, ti preghiamo di aggiornare il post aggiungendo i dettagli della tua risoluzione. Fornirà test di verifica per gli spettatori imminenti :) – jeevatkm

+1

In realtà, ho la stessa intenzione. Ma la mia soluzione non è la risposta alla domanda. La soluzione reale deve essere basata sulla configurazione xml. – Cemo

1

Se si desidera una soluzione che non implichi funzionalità di duplicazione in Spring, è possibile ignorare DisplatcherServlet. nel contenitore Servlet 3.0 questo potrebbe apparire come:

@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

Ho scritto un post sul blog su questo http://www.scarba05.co.uk/blog/2013/03/configure-the-default -handlermapping fornito-by-mvcannotation-driven-in-spring-3-2 / – scarba05

Problemi correlati