1.背景
1. idea中利用maven项目管理工具(不使用骨架)创建java项目
2.通过添加依赖手动创建springboot项目。
访问controller下@Responsebody注解的方法,可以正常返回结果。
3.已经引入了依赖(servlet+jstl+jasper),整合jsp。
<!--servlet依赖 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <scope>provided</scope> </dependency> <!--jstl依赖 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> <!--使jsp页面生效 --> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> </dependency>
2.问题
项目启动成功,但是访问报错“There was an unexpected error (type=Not Found, status=404). /WEB-INF/views/index.jsp”。
3.原因
手动添加的web文件夹没有命名为webapp,而是使用命名为web。
4.解决方案
修改为webapp(必须),解决!
仅供参考,希望可以给同样遇到这个问题的同学一些帮助。
5.对比:不使用maven管理工具创建的普通java项目
1.通过new Moudle --- Java 创建 普通 Moudle
2.通过Add Frameworks Support --- Web Application(4.0) 升级为web结构。
3.对比可知,这种方式创建的web项目的根目录才是web
4.推此及彼,在前面利用maven项目管理工具,通过添加依赖手动创建springboot项目,Add Frameworks Support(4.0)如何?
1.何妨一试
2.结果
可以看到,在普通java项目上Add Frameworks Support --- Web Application(4.0)得到的web项目,它的web根目录和src同级,且命名为web。
通过maven搭建的项目,web根目录一定要是位于main目录的下一级(和java、resource目录同级)且必须命名为webapp。
两者的项目结构可以虽说大同小异。但失之毫厘谬以千里,这小异要特别要注意!尤其没有使用骨架自动搭建搭建,特别要注意!