小编Ada*_*ick的帖子

Spring - 设置 HandlerMapping 优先级

如何在 spring 中设置处理程序映射的优先级以允许资源处理程序在控制器请求映射之前映射?

例如这个配置:

@Configuration
@EnableWebMvc
@ComponentScan("org.commons.sandbox")
public class WebConfiguration extends WebMvcConfigurerAdapter {

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

    @Bean
    public ViewResolver viewResolver(){
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setViewClass(JstlView.class);
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        return resolver;
    }
}
Run Code Online (Sandbox Code Playgroud)

使用以下控制器:

@Controller
public class HomeController {

    @RequestMapping("/**")
    public String home(){
        return "home";
    }
}
Run Code Online (Sandbox Code Playgroud)

捕获对“/resources”的请求。因此链接到 css 文件是 jsp 返回“home”视图而不是“resources”目录中的实际 css 文件。我知道这是由于映射“/**”,但我认为有一种方法可以配置映射顺序......有吗?

谢谢!

web-applications spring-mvc

6
推荐指数
1
解决办法
2522
查看次数

标签 统计

spring-mvc ×1

web-applications ×1