Java 将RequestMappingHandlerMapping配置为不解码url
我有一个带有Java配置的SpringMVC3.2.8应用程序。我想禁用url解码,就像在uri中使用Java 将RequestMappingHandlerMapping配置为不解码url,java,spring,spring-mvc,spring-3,Java,Spring,Spring Mvc,Spring 3,我有一个带有Java配置的SpringMVC3.2.8应用程序。我想禁用url解码,就像在uri中使用/一样。Spring 3.2.8应该解决这个问题 问题是,我无法在RequestMappingHandlerMapping中将Url解码设置为false。我试图用以下方法覆盖它: @Configuration public class MobileWebPublicConfig extends WebMvcConfigurationSupport { @Bean public
/
一样。Spring 3.2.8应该解决这个问题
问题是,我无法在RequestMappingHandlerMapping
中将Url解码设置为false
。我试图用以下方法覆盖它:
@Configuration
public class MobileWebPublicConfig extends WebMvcConfigurationSupport {
@Bean
public RequestMappingHandlerMapping requestMappingHandlerMapping() {
RequestMappingHandlerMapping handlerMapping = super.requestMappingHandlerMapping();
handlerMapping.setUrlDecode(false);
return handlerMapping;
}
}
但当我这样做时,它会中断我的应用程序,自动布线停止工作
我错过了什么
更新:容器是Tomcat 6,没有stacktrace相关,应用程序在尝试访问自动连线元素时失败,原因是该元素为空。对上面的配置进行注释可以使其正常工作。编辑:还要确保您没有
@EnableWebMvc
注释,因为此注释将导入原始WebMvcConfigurationSupport
,而不是扩展版本
WebMVCConfigurationSupportJavadoc说
通常通过将@EnableWebMvc添加到application@Configuration类来导入它。另一个更高级的选项是直接从这个扩展
根据需要初始化并重写方法,记住要添加
@配置子类和@Bean以重写@Bean方法
的文档描述了定制配置的三个自定义级别。你可以:
@EnableWebMvc
导入标准配置@EnableWebMvc
;子类将自动调用其实现的方法,以将您的更改应用于标准配置@EnableWebMvc
,而是让您的配置类扩展以获得对配置的完全控制WebMVCConfigureAdapter
的类中实现的方法
正如其他人所说,我们确实需要查看您的完整配置,但是如果简单地扩展WebMvcConfigurationSupport
并删除@EnableWebMvc
会破坏配置的其他部分,我猜您仍然在配置的其他地方使用webmvcconfigureadapter
如果是这种情况,您有两个选择:
WebMVCConfigureAdapter
的所有配置,并将代码移动到扩展WebMvcConfigurationSupport
的单个配置类中WebMvcConfigurationSupport
。这将为您提供使用@EnableWebMvc
时通常获得的所有标准配置行为,但仍允许您根据需要重写方法。请注意,在您重写的任何方法中,如果您想保持默认行为,还需要在super()
中调用等效的方法李>
是否有任何例外情况发生?如果是肯定的,你能发布它的堆栈跟踪吗?你在哪个servlet容器上?你需要给出更多的细节,因为它在3.2.8上对我来说很好。向我们显示其余(完整)配置。除非
@Autowired
注释的required
属性设置为false
,否则自动连线目标不能为null
。您在做其他错误的事情。@SotiriosDelimanolis看起来我把WebMvcConfigurationSupport与其他东西混淆了,因为查看源代码时,它没有任何类级注释。我编辑了我的答案