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

Spring Boot调用JSP文件时出现404错误求助

解决Spring Boot中JSP访问404问题的方案

针对控制器映射正常但JSP返回404的问题,可按照以下步骤逐一排查解决:

1. 完善依赖配置

仅添加tomcat-jasper不足以支持JSP,需补充JSTL依赖,并切换为war打包方式(Spring Boot对JSP的jar包支持有限,war包更适配)。更新pom.xml如下:

<!-- 基础Web依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<!-- 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>

<!-- 修改打包方式为war -->
<packaging>war</packaging>

2. 配置视图解析器

在src/main/resources/application.properties中添加视图解析规则,让Spring准确定位JSP文件:

# JSP文件存放路径前缀
spring.mvc.view.prefix=/WEB-INF/jsp/
# JSP文件后缀
spring.mvc.view.suffix=.jsp

3. 调整JSP文件位置

按照配置的前缀路径,将JSP文件放在指定目录下,目录结构示例:

src
└── main
    ├── webapp
    │   └── WEB-INF
    │       └── jsp
    │           └── LoginPage.jsp
    └── java
        └── AEINTech.CO.DevicesManager

4. 修改控制器返回值

去掉返回字符串中的.jsp后缀,让视图解析器自动拼接前缀和后缀:

@Controller
public class UsersLoginController {
    
    @RequestMapping("/r")
    public String users() {
        // 仅返回视图名称,解析器会自动拼接为/WEB-INF/jsp/LoginPage.jsp
        return "LoginPage";
    }
    
    @RequestMapping(value = {"/rr"})
    @ResponseBody
    public String userse() {
        return "LoginPage";
    }

}

5. 验证启动方式

  • IDE启动:直接运行DevicesManagerApplication的main方法
  • 打包后启动:执行java -jar xxx.war命令,访问http://127.0.0.1:44444/r即可加载JSP页面

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 10:16:10