Używam <mvc:annotation-driven/>
i chciałbym skonfigurować RequestMappingHandlerMapping
do wyłączania useTrailingSlashMatch
. Kiedy zadeklaruję inny RequestMappingHandlerMapping, zakończę 2 RequestMappingHandlerMapping
. Jak mogę skonfigurować RequestMappingHandlerMapping
?Dostosowywanie wiosny 3 mvc: adnotacja dla RequestMappingHandlerMapping
Odpowiedz
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>
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>
Próbowałem już tego. 'mvc: adnotation-driven' tworzy kolejne RequestMappingHandlerMapping. Oświadczyłem na to pytanie. – Cemo
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;
}
}
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
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
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
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);
}
}
}
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
- 1. Dziedziczenie wiosny - Adnotacja
- 2. Uchwyt ten sam adres URL z wiosny MVC RequestMappingHandlerMapping i wiosna websocket za ServletWebSocketHandlerRegistry
- 3. @ Adnotacja modelu i MVC
- 4. Samouczek wiosny MVC od zera
- 5. wiosny MVC żądania konwencje mapowania
- 6. wiosny Web MVC, @ModelAttribute i @RequestParam razem
- 7. A/B, Wielowariantowa badania z wiosny MVC
- 8. nie można znaleźć deklaracji dla elementu "mvc: adnotacja sterowana"
- 9. wiosny MVC z wielu widoków przeliczniki
- 10. Plan nauki dla ASP.NET MVC 3
- 11. Zrozumienie, jak MVC wiosny za @RequestMapping POST działa
- 12. Struktura projektu MVC 3
- 13. Adnotacja danych dla szerokości kolumny
- 14. Dostosowywanie środowiska ESS dla R
- 15. Java/Wiosna MVC 3 walidacja adresu email
- 16. ReactJS komponent załadować plik do wiosny MVC serwera/Dane REST
- 17. Wiosna 3 MVC nazw i i18n
- 18. Howto pozbyć się <mvc: adnotacja sterowana />?
- 19. Wiosna MVC - przesyłanie pliku jest blokowane przez ochronę wiosny
- 20. ACL w ASP.NET MVC 3
- 21. ASP.NET MVC 3 Generic DisplayTemplates
- 22. Uwierzytelnianie użytkowników ASP.NET MVC 3
- 23. jak uzyskać param w metodzie post wiosny mvc?
- 24. Jak materiały tekstowe odpowiedź od wiosny MVC 3.0 Java webapp
- 25. odkażania dane wprowadzane przez użytkownika z wiosny MVC ramach
- 26. wiosny MVC, uzyskanie kapitału od kontekstu zabezpieczeń w warstwie usług
- 27. Test kontrolera MVC i dane-wiosny-jpa EnableSpringDataWebSupport
- 28. Czy dostosowywanie usługi DispatcherServlet w Spring MVC jest powszechną praktyką?
- 29. Wartości procentowe w MVC 3
- 30. ASP.NET MVC 3 Viewmodel Pattern
Działa, ale tak wiele duplikacji nie jest dobre – scarba05
Nie działa już z wiosną 3.2 – ALOToverflow