我有一个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);
}
}
如何重新排序映射以确保在注释控制器之前考虑静态页面?
答案 0 :(得分:0)
(我不确定,但是)我建议覆盖WebMvcConfigurerAdapter.addResourceHandlers()
方法并通过调用ResourceHandlerRegistry.setOrder()
配置资源处理程序的顺序