Spring Boot 在多模块中集成jsp中,总是遇到不能跳转jsp的坑,网上搜索总结如下:
自己测试非常实用!!!!!!!!!!!!!!!!!!!!!!!!!!!
Spring Boot 在单一module中集成jsp ,在配置文件中配置目录等信息就可以了。
但是在多module中,就会出现不能跳转到jsp或是404错误。
所以多模块中还要做其他配置,全部配置如下:
1、首先在application.properties添加:
#1.当parent标签中引入的是1.4.0版本的话,那么applicaion.properties中配置jsp前缀和后缀的时候应该配置如下,一定要带上mvc #spring.mvc.view.prefix=/WEB-INF/jsp/ #spring.mvc.view.suffix=.jsp #2.当parent标签中引入的是1.1.3版本的话,那么applicaion.properties中配置jsp前缀和后缀的时候应该配置如下,一定不要带上mvc #spring.view.prefix=/WEB-INF/jsp/ #spring.view.suffix=.jsp #页面默认前缀目录 spring.mvc.view.prefix=/WEB-INF/jsp/ #响应页面默认后缀 spring.mvc.view.suffix=.jsp
2、新添加配置类:配置类 在启动类的目录下或者是启动类的子目录下
@Configuration public class WebJSPConfig extends WebMvcConfigurerAdapter{ private static final Logger logger= Logger.getLogger(WebJSPConfig.class); /** * 多模块的jsp访问,默认是src/main/webapp,但是多模块的目录只设置yml文件或propeerties文件不行 * @return */ @Bean public InternalResourceViewResolver viewResolver(){ InternalResourceViewResolver viewResolver=new InternalResourceViewResolver(); viewResolver.setViewClass(JstlView.class); viewResolver.setPrefix("/WEB-INF/jsp/"); viewResolver.setSuffix(".jsp"); logger.info("****************/WEB-INF/jsp/*****************************************"); return viewResolver; } /** 指定默认文件的地址,jsp页面引入js和css的时候就不用管项目路径了 */ @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/static/**") .addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX+"/static/"); super.addResourceHandlers(registry); } }