config配置:
@Configuration public class WebMvcConfig implements WebMvcConfigurer { /** * 跨域配置 * @return */ @Bean public CorsFilter corsFilter() { UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); source.registerCorsConfiguration("/**", buildConfig()); return new CorsFilter(source); } private CorsConfiguration buildConfig() { CorsConfiguration corsConfiguration = new CorsConfiguration(); corsConfiguration.addAllowedOrigin("*"); corsConfiguration.addAllowedHeader("*"); corsConfiguration.addAllowedMethod("*"); return corsConfiguration; } @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { //需要配置1:----------- 需要告知系統,這是要被當成靜態文件的! //第一個方法設置訪問路徑前綴,第二個方法設置資源路徑 registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/"); registry.addResourceHandler("/templates/**").addResourceLocations("classpath:/templates/"); }
靜態文件的路徑:
用靜態方式去訪問,http://localhost:8080/static/generateOrder.html
里面引用的路徑為:
如果用http://localhost:7500/message去訪問
@Controller public class SpsMessageUtilsController { @RequestMapping("/message") public String getMessage() { return "static/generateOrder2"; } }
原因:轉發和重定向的區別之一是:采用轉發,URL不會發生變化。即從一個servlet轉發到一個jsp頁面,url仍為servlet的地址。這樣,原來jsp頁面中使用到相對路徑的地方要進行修改。否則,是找不到文件的。