公司去年开始推行SpringBoot,但部分老旧的项目还使用着传统的JSP开发模式,在idea下就遇到了一个问题,访问jsp页面404。
网上大部分的建议都是更改jar的依赖方式,未解决。后来同事推荐了解决办法,现记录下来,希望能帮到和我遇到相同问题的人。
其实根本原因就是我们项目的目录结构的问题,大家拉取项目,一般都习惯先创建一个文件夹,然后把项目都拉到这个文件夹下,用idea打开父文件夹,就像这种:
有两种解决方案,亲测可行。
第一种办法
我们需要配置下内置的tomcat,更改为正确的目录结构:
创建类TomcatConfig.java文件(与*Application启动类同一个包下就行,只要能扫描到),内容如下:
@Configuration
public class TomcatConfig {
@Bean
public EmbeddedServletContainerFactory embeddedServletContainerFactory() {
ConfigurableEmbeddedServletContainer factory = new TomcatEmbeddedServletContainerFactory();
factory.setDocumentRoot(new File("D:\\WorkSpace\\**\\src\\main\\webapp\\"));
return (EmbeddedServletContainerFactory) factory;
}
}
setDocumentRoot中填写你jsp项目的绝对路径。
注意:需要把这个类添加到版本忽略中,不能提交。因为大家的工作目录都不是相同的。
这个方案的参考网址:https://blog.csdn.net/op_violet/article/details/79093328
第二种办法(推荐)
后来发现还有一种解决办法,不需要写配置代码就可以解决,只需要配置下idea项目的启动参数,把项目的工作目录修改为正确的位置,如下图:
1. 先启动一次项目,然后在顶部下来点击“Edit Configuration”
2. 选择带jsp的项目
3. 修改成该项目的正确根目录
或者改成这样
新版idea下来没有这个选项了,可以手动填入:$MODULE_WORKING_DIR$
然后启动就可以了。
写的比较仓促,有问题欢迎与我联系~~