J'utilise <mvc:annotation-driven/>
et je voudrais configurer RequestMappingHandlerMapping
pour désactiver useTrailingSlashMatch
. Quand je déclare un autre RequestMappingHandlerMapping, je finirai par 2 RequestMappingHandlerMapping
. Comment puis-je configurer RequestMappingHandlerMapping
?Personnalisation printemps 3 mvc: annotation pour RequestMappingHandlerMapping
Répondre
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>
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>
J'ai déjà essayé cela. 'mvc: annotation-driven' crée un autre RequestMappingHandlerMapping. J'ai déclaré sur ma question. – Cemo
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;
}
}
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
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
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
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);
}
}
}
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
- 1. printemps annotation mvc @RequestAttribute similaire à @RequestParam
- 2. Printemps 3 MVC Imbrication RequestMapping
- 3. annotation printemps Comprendre DI
- 4. Printemps AOP @annotation
- 5. ressources cartographie au printemps mvc 3
- 6. comment définir l'en-tête pas de cache au printemps mvc 3 par annotation
- 7. Printemps MVC - @Controller annotation et le traitement des demandes concurrentes
- 8. annotation mvc de printemps - variable de forme factic
- 9. Printemps MVC LocaleChangeInterceptor annotation basé ne fonctionne pas
- 10. printemps 3 mvc intercepter toutes les demandes
- 11. problèmes avec xml au printemps mvc 3
- 12. Spring Boot requestMappingHandlerMapping java.lang.ArrayStoreException
- 13. printemps mvc 3 et google datatable
- 14. Printemps AOP Aspect Annotation Logging
- 15. Mvc 3 hasErrors printemps est toujours faux
- 16. Personnalisation de PropertyEditorSupport au printemps
- 17. Spring mvc: le résultat du contrôleur renvoyé à RequestMappingHandlerMapping
- 18. Printemps 3 Ressource MVC et balise <mvc: resources />
- 19. Spring MVC annotation preload form
- 20. RequestMappingHandlerMapping et WebMvcConfigurerAdapter
- 21. Annotation personnalisée de validation annotation mvc
- 22. ASP.NET MVC 3 Données Annotation: Ajouter dynamiquement la validation
- 23. données Annotation validation ne fonctionne pas dans ASP.NET MVC 3
- 24. Printemps MVC @RequestMapping annotation peut être utilisé pour correspondre à l'URL en fonction des paramètres httpsession
- 25. ehcache au printemps mvc
- 26. Printemps 3 MVC - Url mappage introuvable (404) en production
- 27. Rails 3 Devise personnalisation
- 28. créer une nouvelle annotation de printemps
- 29. Utilisation de @Value Printemps Annotation avec Groovy
- 30. Annotation @Named dans Spring MVC
Cela fonctionne mais cette duplication n'est pas bonne – scarba05
Ne fonctionne plus avec Spring 3.2 – ALOToverflow