2012-11-27 10 views

Odpowiedz

9

Jak już wspomniano, jest to wykonalne w xml usuwając mvc:annotation-driven i zastąpienie całej xml równoważne:

<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

Działa, ale tak wiele duplikacji nie jest dobre – scarba05

+3

Nie działa już z wiosną 3.2 – ALOToverflow

0

Dodaj następujące elementy do pliku konfiguracyjnego sprężyny, aby przełączyć pole useTrailingSlashMatch.

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

Próbowałem już tego. 'mvc: adnotation-driven' tworzy kolejne RequestMappingHandlerMapping. Oświadczyłem na to pytanie. – Cemo

1

można spróbować z config Java zastąpić RequestMappingHandlerMapping wartość

@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

Rozwiązałem już problem, zastępując całą konfigurację xml programistyczną wersją java. Ale spróbowałem też tego, który mi nie pomógł. – Cemo

+0

Okay, konfiguracja Java działała dla ciebie; Dobry. Jeśli masz czas, zaktualizuj post, dodając szczegóły dotyczące rozwiązania. Zapewni to heads up dla przyszłych widzów :) – jeevatkm

+1

Właściwie to mam tę samą intencję. Ale moje rozwiązanie nie jest odpowiedzią na pytanie. Prawdziwe rozwiązanie musi być oparte na konfiguracji xml. – Cemo

1

Jeśli potrzebujesz rozwiązania, które nie wymaga funkcji duplikowania na wiosnę, możesz przesłonić DisplatcherServlet. w kontenerze Servlet 3.0 może to wyglądać następująco:

@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

Napisałem blog na ten temat http://www.scarba05.co.uk/blog/2013/03/configure-the-default -handlermapping-by-przez-mvcannotation-driven-in-spring-3-2 / – scarba05

Powiązane problemy