Spring Boot url mappings命令控制器和静态页面

时间:2015-09-18 09:58:19

标签: spring spring-mvc spring-boot

我有一个Spring Boot Web应用程序,用于提供基于静态和基于控制器的页面(1509170142065114105 )。问题是控制器可以提供ModelAndView之类的内容,而静态页面必须与/{string}一起提供。

问题是控制器映射优先,我需要避免这种情况。如果用户点击/test,则必须将其转发到/test静态页面。

我尝试以这种方式使用 ViewControllerRegistry 的order属性,但没有成功:

test.html

这是我的 SpringBootApplication 类:

@Configuration
public class MyWebMvcConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/test").setViewName("forward:/test.html");
        registry.setOrder(Ordered.HIGHEST_PRECEDENCE); // but I tried with 0 and -1 as well: annotated controllers should have order equals to 0
    }

}

这是控制器代码:

@SpringBootApplication
public class VipApplication {

    public static void main(String[] args) {
        SpringApplication.run(VipApplication.class, args);
    }

}

如何重新排序映射以确保在注释控制器之前考虑静态页面?

1 个答案:

答案 0 :(得分:0)

(我不确定,但是)我建议覆盖WebMvcConfigurerAdapter.addResourceHandlers()方法并通过调用ResourceHandlerRegistry.setOrder()配置资源处理程序的顺序