小Demo项目中Springboot集成Jsp,访问url出现404,如下
百度了一下,但是大多数都是复制粘贴,和我的问题原因不一致,具体集成结构此处不详细叙述(参考:springboot2.0整合jsp_穷少年的博客-CSDN博客_springboot2整合jsp)
我项目问题原因:
1. 项目采用多模块,对应的项目路径为父项目的根路径,导致找不到url
解决办法
a. 修改启动配置,设置项目工作路径为子模块路径 (推荐)
b. 添加配置bean,修改工作路径
package pri.hzhu.file.config;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.io.File;
/**
* @description:
* @author: pp_lan
* @date: 2022/1/4 20:05
*/
@Configuration
public class GlobalConfig {
@Bean
public WebServerFactoryCustomizer<TomcatServletWebServerFactory> customizer() {
return (factory) -> {
factory.addContextCustomizers((context) -> { //模块中webapp相对路径
//下面是子项目的module名称,而不是你修改的application name这点需要注意;
String relativePath = "file-system/src/main/webapp";
File docBaseFile = new File(relativePath); // 如果路径不存在,则把这个路径加入进去
if (docBaseFile.exists()) {
context.setDocBase(docBaseFile.getAbsolutePath());
}
});
};
}
}