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页面中使用到相对路径的地方要进行修改。否则,是找不到文件的。