You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

问题修复方案

核心根因说明

你当前日志出现ResourceHttpRequestHandler Path with "WEB-INF" or "META-INF"警告,是因为Spring Boot未配置JSP视图解析器,将返回的视图名称当成静态资源进行检索,导致404错误。其余多为代码细节错误,修复方案如下:


1. 新增JSP相关依赖及视图配置

Spring Boot默认不支持JSP渲染,需先补充必要依赖并配置视图规则:

  • 若使用Maven管理依赖,在pom.xml中添加如下依赖:
<!-- Tomcat JSP解析引擎 -->
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
    <scope>provided</scope>
</dependency>
<!-- JSTL标签库支持 -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
</dependency>
  • 在src/main/resources/application.properties中添加JSP视图解析配置:
# JSP文件所在路径前缀
spring.mvc.view.prefix=/WEB-INF/views/
# JSP文件后缀
spring.mvc.view.suffix=.jsp

2. 修复Controller代码错误

  • 修正类名拼写错误:StudentConttroller改为StudentController
  • 修正重复路径映射:两个@GetMapping("/student/add")冲突,处理表单提交的add方法注解改为@PostMapping("/student/add")
  • 修正重定向路径:现有重定向地址redirect:/student/home无对应映射,可统一给Controller类添加@RequestMapping("/student")前缀,同时将list方法的@GetMapping("/home")保留,即可对应/student/home路径
  • 修正视图变量名:Controller中存入Model的变量名为listStudent,需和JSP中读取的变量名统一,修改为model.addObject("listStudents", studentList)即可匹配JSP中的${listStudents}

3. 修复JSP代码错误

  • 修正实体属性读取:Student实体无name属性,将<c:out value="${student.name}" />改为<c:out value="${student.firstname} ${student.lastname}" />
  • 修正操作链接:直接使用已声明的editURL和deleteURL变量,修改为:
<a href="${editURL}">Edit</a>
&nbsp;&nbsp;&nbsp;&nbsp;
<a href="${deleteURL}" onclick="return confirm('确定要删除该记录吗?')">Delete</a>

4. 可选优化:清理启动类冗余注解

@SpringBootApplication默认会扫描启动类所在包及其子包的所有组件,若你的启动类放置在项目根包下,可删除额外添加的@ComponentScan、@EntityScan注解,避免手动配置的扫描路径出错。


所有修改完成后重启项目,访问http://localhost:8282/student/home即可正常渲染JSP页面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 12:12:00