You need to enable JavaScript to run this app. Spring Boot 2.5.0版本无法渲染JSP页面返回404错误问题求助
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot 2.5.0版本无法渲染JSP页面返回404错误问题求助

问题原因及解决步骤

1. 修正视图解析器前缀配置

你当前InternalResourceViewResolver的prefix属性末尾缺少路径分隔符/,导致最终拼接的JSP路径错误,找不到对应文件:
原错误代码:

viewResolver.setPrefix("/WEB-INF/jsp");

修正后:

viewResolver.setPrefix("/WEB-INF/jsp/");

修正后拼接视图名称得到的完整路径为/WEB-INF/jsp/index.jsp,可以正确匹配到你的JSP文件。

2. 调整tomcat-embed-jasper依赖的生效范围

Spring Boot 2.3+版本的Maven插件默认不会将scope=provided的依赖加载到运行时类路径,你当前tomcat-embed-jasper的scope为provided,会导致内嵌Tomcat缺少JSP解析能力。
你可以临时移除该依赖的provided scope验证问题,也可以修改spring-boot-maven-plugin配置,主动开启对provided依赖的加载:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <includeSystemScope>true</includeSystemScope>
    </configuration>
</plugin>

如果后续需要打独立WAR包部署到外部Tomcat,再把tomcat-embed-jasper的scope改回provided即可。

3. 修正MVC配置继承逻辑

你当前配置类继承了WebMvcConfigurationSupport,这会完全覆盖Spring Boot的Web MVC自动配置,可能导致默认的视图解析、静态资源处理逻辑异常。建议改成实现WebMvcConfigurer接口,保留自动配置能力的同时自定义扩展规则:

@Configuration
@ComponentScan(basePackages = "school.com.my.myschool")
public class ApplicationConfig implements WebMvcConfigurer {
    // 保留原有的addResourceHandlers和jspViewResolver方法不变
}

4. 对齐Java版本配置

你提到项目使用Java 11,但pom.xml中java.version属性配置的是1.8,修改为对应版本避免兼容性问题:

<properties>
    <java.version>11</java.version>
</properties>

内容的提问来源于stack exchange,提问作者Wais Shuja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 02:15:05