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

Spring Boot Web应用报错:DispatcherServlet未找到URI [/]的请求映射

解决Spring Boot中"No mapping found for HTTP request with URI [/] in DispatcherServlet"问题

从你提供的日志、配置和代码来看,核心问题是DispatcherServlet找不到根路径/的请求映射,同时还有几个配置和代码细节需要调整,下面一步步帮你解决:

1. 给根路径添加控制器映射

你目前没有任何控制器处理/路径的请求,这是导致日志警告的直接原因。创建一个简单的控制器类,比如HomeController,放在主启动类的同级或子包下(Spring Boot默认扫描主类所在包及子包):

package com.tecnologias.airbnb;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HomeController {

    @GetMapping("/")
    public String home(Model model) {
        // 如果需要给页面传参,比如hello.jsp里的${name},可以在这里添加
        model.addAttribute("name", "你的名字");
        // 返回视图名,对应你放在WEB-INF/views下的jsp文件(不用加前缀后缀,配置会自动拼接)
        return "index"; // 或者返回"hello"对应hello.jsp,看你的需求
    }
}

2. 修正tomcat-embed-jasper的依赖范围

你的pom.xml里tomcat-embed-jasper的scope设为了provided,这在直接用Spring Boot启动的开发环境中会导致JSP无法被正确渲染——provided意味着这个依赖只在编译、测试阶段可用,运行时不会被包含。把它改成compile或者直接移除scope属性:

<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
    <!-- 移除scope="provided" -->
</dependency>

3. 确认JSP文件的存放路径

根据你application.properties里的配置spring.mvc.view.prefix: /WEB-INF/views/,所有JSP文件必须放在src/main/webapp/WEB-INF/views/目录下。一定要确保index.jsp和hello.jsp都在这个路径里,不然Spring找不到对应的视图文件。

4. 修复index.jsp的语法错误

你提供的index.jsp有两处明显的语法错误,这会导致页面渲染失败:

  • <h1>标签没有闭合(少了</h1>)
  • <form>标签没有写完

修正后的代码如下:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<!-- 静态资源引用 -->
<link rel="stylesheet" href="/resources/css/style.css">
<script type="text/javascript" src="/resources/js/app.js"></script>
<title>Spring Boot</title>
</head>
<body>
<h1>Spring Boot - Prueba de MVC</h1>
<hr>
<div class="form">
<form action="/your-action-path" method="post">
    <!-- 这里可以添加表单元素,比如输入框、按钮等 -->
    <input type="submit" value="提交">
</form>
</div>
</body>
</html>

5. 验证静态资源的存放位置

你的spring.mvc.static-path-pattern: /resources/**配置是正确的,但要确保静态资源放在src/main/resources/static/目录下:

  • css/style.css → src/main/resources/static/css/style.css
  • js/app.js → src/main/resources/static/js/app.js

这样才能通过/resources/css/style.css这类路径正常访问到静态资源。

做完以上所有调整后,重启你的Spring Boot应用,再访问localhost:8080应该就能正常加载页面了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:10:48