实战:Springboot集成jsp页面报404解决方案

1,108 阅读2分钟

Springboot集成jsp页面报404。最近搭建一个简单的Springboot+maven+jsp的项目时,出现访问jsp页面时一直出404,错误信息是:

This application has no explicit mapping for /error, so you are seeing this as a fallback.
Wed Apr 15 10:44:30 CST 2020
There was an unexpected error (type=Not Found, status=404).
/index.jsp

在网上找了一些方法,但都没有解决
(1):方法一

Application启动类的位置不对.要将Application类放在最外侧,即包含所有子包 

原因:spring-boot会自动加载启动类所在包下及其子包下的所有组件.

image.png
经排查后发现我此处无问题
(2)方法二:

在springboot的配置文件:application.yml或application.properties中关于视图解析器的配置问题: 

当pom文件下的spring-boot-starter-paren版本高时使用: 
spring.mvc.view.prefix=/
spring.mvc.view.suffix=.jsp

当pom文件下的spring-boot-starter-paren版本低时使用: 
spring.view.prefix=/
spring.view.suffix=.jsp

image.png
因为无法判断我版本高还是低,两种方法我都试过,还是无效
(3)方法三

控制器的URL路径书写问题 

@RequestMapping(“xxxxxxxxxxxxxx”) 

实际访问的路径与”xxx”不符合.

这低级错误那肯定也排除了
(4)当我反复观看代码寻找错误时,发现一个问题,就是发现学习视频中的代码中在src文件夹下存在target文件夹,但是我的却没有。并且在配置该模块的pom.xml文件时,需要在bulid标签中加上以下代码。

   <build>
<!--        指定jsp编译后的存放目录-->
        <resources>
            <resource>
<!--        jsp原来的目录-->
                <directory>src/main/webapp</directory>
<!--       存放的目录和文件    -->
                <targetPath>META-INF/resources</targetPath>
<!--                指定处理的目录和文件-->
                <includes>
                    <include>**/*.*</include>
                </includes>

而存放的目录和文件的路径正是处于target文件夹下。
于是我开始寻找让target文件出现的方法。

image.png
只要找到对应模板下Lifecycle下的install,点击,成功运行后target文件夹就会生成。
但我在IDEAproject structure发现target虽然存在,但是在src目录下却依然不显示。
再次查找后终于解决:

image.png
只需要把内容根目录中对target对应的设置删除,就是点击图右中红色那个叉,应用后target目录成功出现。

重新启动Application启动类问题成功解决。