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

Spring MVC无法找到视图返回404错误,请求技术协助

问题排查与解决方案

核心问题定位

从你的配置来看,视图解析器的路径拼接逻辑是正确的(/WEB-INF/views/ + user/index + .jsp = /WEB-INF/views/user/index.jsp),但出现404大概率是以下几个原因之一:

解决方案步骤

1. 确认文件路径完全匹配

检查你的index.jsp是否严格位于src/main/webapp/WEB-INF/views/user/目录下,确保目录层级、文件名(包括大小写)和拼接后的路径完全一致。

2. 修复JSP依赖版本不兼容问题

你当前使用的jsp-api 2.0版本过旧,和javax.servlet-api 4.0.1不兼容,会导致JSP无法被容器正确解析。替换pom.xml中的JSP依赖:

<!-- 移除原有的jsp-api 2.0依赖,替换为以下内容 -->
<dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>jsp-api</artifactId>
    <version>2.3.3</version>
    <scope>provided</scope>
</dependency>

3. 确保Maven正确打包WEB-INF资源

在pom.xml的build标签中明确指定webapp目录,避免打包时遗漏文件:

<build>
    <warSourceDirectory>src/main/webapp</warSourceDirectory>
    <plugins>
        <!-- 原有的插件配置保持不变 -->
    </plugins>
</build>

4. 清理并重新构建部署

执行Maven命令清理旧构建文件并重新打包:

mvn clean install

然后重新部署到Tomcat,检查target/SpringWebMvc-1.0.war解压后是否包含WEB-INF/views/user/index.jsp。

5. 验证Controller是否被正确触发

在HomeController的index()方法中添加日志输出,确认请求是否被DispatcherServlet转发到该方法:

@Controller
public class HomeController {
    @RequestMapping(value = "/", method = RequestMethod.GET)
    public String index() {
        System.out.println("请求进入index方法"); // 添加此行
        return "user/index";
    }
}

启动Tomcat后访问根路径,查看控制台是否有输出,以此确认Controller是否被正确扫描和映射。

6. 查看Tomcat日志定位细节

查看Tomcat的localhost.log或catalina.log,如果存在类似Could not resolve view with name 'user/index'的错误,可根据日志提示进一步排查路径或视图解析问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 05:40:37