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
相关产品推荐
相关产品推荐

