Sto usando <mvc:annotation-driven/>
e desidero configurare RequestMappingHandlerMapping
per disabilitare useTrailingSlashMatch
. Quando dichiaro un altro RequestMappingHandlerMapping, finirò 2 RequestMappingHandlerMapping
. Come posso configurare RequestMappingHandlerMapping
?personalizzazione spring 3 mvc: annotazione per RequestMappingHandlerMapping
risposta
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>
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>
Ho già provato questo. 'mvc: annotation-driven' sta creando un altro RequestMappingHandlerMapping. Ho affermato sulla mia domanda. – Cemo
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;
}
}
Ho già risolto sostituendo l'intera configurazione xml con uno java programmatico. Ma avevo anche provato questo che non mi ha aiutato. – Cemo
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
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
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);
}
}
}
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
- 1. Spring 3 @Annotazione Problemi di annotazione
- 2. @Nota annotazione in Spring MVC
- 3. annotazione @RequestMapping in Spring MVC
- 4. Test Spring MVC mapppings annotazione
- 5. Convalida basata su annotazione Spring 3: password e conferma password
- 6. Spring 3 MVC Nesting RequestMapping
- 7. Partita il "Resto del URL" utilizzando Spring 3 RequestMapping annotazione
- 8. Maneggiare lo stesso URL con Spring MVC RequestMappingHandlerMapping e ServletWebSocketHandlerRegistry Primavera websocket
- 9. accesso diretto campo in Spring MVC 3
- 10. Spring MVC 3: ritorno XML tramite @ResponseBody
- 11. Jackson serializzazione personalizzata in Spring 3 MVC
- 12. Messaggi di stato sul sito Spring MVC (controller di annotazione)
- 13. Spring MVC 3: trovata mappatura ambigua
- 14. Valore annotazione Spring Scope
- 15. Spring 3 namespace MVC e i18n
- 16. spring @ annotazione transazionale
- 17. Per iniziare con Spring 3 Web MVC - Impostazione di tutto
- 18. Spring 3 MVC risorse e tag <mvc: resources />
- 19. MVC 2 - Annotazione dati per etichetta?
- 20. annotazione dati ASP.NET MVC per formato valuta
- 21. Spring 3 - Creare ExceptionHandler per NoSuchRequestHandlingMethodException
- 22. Spring MVC @RequestMapping Inheritance
- 23. Spring: variabile troncata dopo punto - annotazione
- 24. JPA 3 vie aderire annotazione
- 25. Spring 3 Security j_spring_security_check
- 26. convalida annotazione mvc molla intero
- 27. ASP.NET MVC 3 Annotazione dati per telefono cellulare e numeri di telefono (Modificato)
- 28. Spring 3 MVC che accede a HttpRequest dal controller
- 29. Spring MVC 3 Validation - Impossibile trovare un provider predefinito
- 30. Spring 3 MVC - modulo: errori non mostrano gli errori
Funziona ma questa duplicazione non è buona – scarba05
Non funziona più con Spring 3.2 – ALOToverflow