我正在使用<mvc:annotation-driven/>
,我想配置RequestMappingHandlerMapping
禁用useTrailingSlashMatch
。当我声明另一个RequestMappingHandlerMapping时,我将最终得到2 RequestMappingHandlerMapping
。我如何配置RequestMappingHandlerMapping
?自定义弹簧3 mvc:注释RequestMappingHandlerMapping
回答
正如我们已经指出的那样,这是XML可行的去除mvc:annotation-driven
并与整个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>
将以下内容添加到您的弹簧配置文件中以切换useTrailingSlashMatch
字段。
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
<property name="useTrailingSlashMatch" value="true">
</property>
</bean>
我已经试过了。 'mvc:annotation-driven'正在创建另一个RequestMappingHandlerMapping。我已经在我的问题上说过了。 – Cemo
你能使用Java的配置尽量覆盖RequestMappingHandlerMapping
值
@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;
}
}
如果您想要一个不涉及在Spring中复制功能的解决方案,那么您可以覆盖DisplatcherServlet。在Servlet 3.0容器中,这可能看起来像:
@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);
}
}
}
我写了一篇关于此的博客文章http://www.scarba05.co.uk/blog/2013/03/configure-the-default -handlermapping提供的逐mvcannotation驱动式弹簧-3-2 / – scarba05
- 1. 自定义注释与弹簧安全
- 2. 弹簧3与注释
- 3. JSF 2.0 +弹簧3,通过注释
- 4. 如何访问弹簧方面的自定义注释值
- 5. 使用自定义弹簧安全注释
- 6. 使用自定义注释进行弹簧窗体验证
- 7. 弹簧3的Web MVC - @Controller()方法,通过注释
- 8. 弹簧注射和注释
- 9. 下弹簧3 MVC
- 10. 来自javascript的弹簧控制器调用。弹簧注释
- 11. 使用MockMvc自定义RequestMappingHandlerMapping
- 12. 自定义注释在iPhone中弹出?
- 13. 弹簧注释的NullPointerException
- 14. 弹簧中的绑定注释
- 15. 指定弹簧豆与注释
- 16. 自定义数据注释ASP.NET MVC C#
- 17. 在MVC中创建自定义数据注释验证3
- 18. 服务器端自定义数据注释验证MVC 3
- 19. 弹簧mvc 3 - HTTPS访问
- 20. 弹簧3依赖注入(IOC)与注释
- 21. ASP.NET MVC Global.asax注入弹簧
- 22. 如何在弹簧mvc中使用带注释配置的弹簧数据
- 23. 自定义注释?
- 24. 在弹簧安全中使用自定义方法安全注释
- 25. 将自定义注释建议应用于弹簧数据jpa存储库
- 26. 弹簧自定义自动装配
- 27. 如何使用自定义参数注释返回自定义弹簧错误响应?
- 28. 如何在自定义过滤器弹簧安全中注册自定义FailureHandler
- 29. Spring mvc autowire RequestMappingHandlerMapping
- 30. 弹簧mvc控制器上的jsr-303注释参数
它有效,但这么多重复不好 – scarba05
不再适用于Spring 3.2 – ALOToverflow