WebMvcConfigurationSupport

WebMvcConfigurationSupport

我有一个像这样的spring MVC配置类:

@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter{
@Bean
public InternalResourceViewResolver configureInternalResourceViewResolver()   {
    InternalResourceViewResolver resolver = new InternalResourceViewResolver();
    resolver.setPrefix("/WEB-INF/views/");
    resolver.setSuffix(".jsp");
    return resolver;
}

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/resources/**").addResourceLocations(
            "/resources/");
}


}

我在映射带有斜杠的URL时遇到了问题,类似于this。所以我想添加RequestMappingHandlerMapping类,但是根据指令我得到there,我需要扩展 WebMvcConfigurationSupport类并实现requestMappingHandlerMapping()方法,但是不幸的是,我已经扩展了WebMvcConfigurationSupport类来进行资源映射。有什么办法可以向我的类(class)添加要求的映射处理程序?

注意:我正在使用Spring 3.1.1.RELEASE版本

最佳答案

您的问题使我无法理解,为什么您不能使用 WebMvcConfigurationSupport 。如果您所说的“...不幸的是,我已经扩展了WebMvcConfigurationSupport类用于资源的映射...”,而意味着您已经扩展了WebMvcConfigurerAdapter,则应注意WebMvcConfigurationSupport公开了完全相同的方法。

无论如何,以下应该是Spring MVC 3.1版本的有效Java配置

@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurationSupport {

    @Override
    @Bean
    public RequestMappingHandlerMapping requestMappingHandlerMapping() {
        RequestMappingHandlerMapping hm = super.requestMappingHandlerMapping();
        hm.setUseSuffixPatternMatch(false);
        return hm;
    }

    @Bean
    public InternalResourceViewResolver configureInternalResourceViewResolver() {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        return resolver;
    }

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/resources/**").addResourceLocations(
                "/resources/");
    }
}

09-25 22:24