No mapping found for HTTP request with URI [/] in DispatcherServlet with name ‘DispatcherServlet‘

当SpringMVC控制器找不到以index.html为首的静态资源时,由于其被识别为非jsp文件,服务器启动时会出现错误。解决这个问题的方法是在Spring-mvc.xml配置文件中添加<mvc:default-servlet-handler/>标签。这使得当SpringMVC找不到静态资源时,会将请求转交给原始的Tomcat服务器来处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        

        因为首页是index.html,而不是jsp文件,被列为静态资源,所以当服务器启动时,SpringMVC controller找不到这个静态资源对应的匹配地址,然后提示此错误

解决方法:

在Spring-mvc.xml文件中添加 <mvc:default-servlet-handler/> 此标签

意义:如果spring-controller找不到静态资源,那么交由原始容器(tomcat)服务器寻找


### 解决 Spring Boot 中 DispatcherServlet 找不到映射到 HTTP 请求 URI `/.html` 的问题 当遇到 DispatcherServlet 报告找不到映射到特定 URL 如 `/example.html` 或根路径下的 `.html` 文件时,通常是因为应用程序配置未能正确处理静态资源或视图解析。 #### 配置静态资源位置 默认情况下,Spring Boot 支持从多个预定义的位置加载静态文件,包括但不限于 `classpath:/static/`, `classpath:/public/`, `classpath:/resources/`, 和 `classpath:/META-INF/resources/`. 如果 HTML 页面位于这些目录之外,则需调整配置以包含自定义路径[^1]. 对于简单的HTML页面展示需求,建议将HTML文件放置于上述任一标准目录内。例如,在项目结构中的 `src/main/resources/static/index.html`. #### 启用WebMvc自动配置 确认已启用 Web MVC 自动配置功能。如果手动排除了该组件,可能需要重新引入它来确保基本的MVC特性正常工作: ```java @SpringBootApplication(exclude={org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration.class}) // 应移除此行或取消exclude参数设置 ``` #### 设置ViewResolver Bean (可选) 为了支持JSP或其他模板引擎渲染动态内容,可以通过创建一个内部资源视图解析器bean实现更灵活的内容呈现方式: ```java @Bean public InternalResourceViewResolver defaultViewResolver() { return new InternalResourceViewResolver(); } ``` 然而针对纯静态网页访问场景,默认行为已经足够满足需求,无需额外定制view resolver. #### 检查控制器方法签名 确保所有的@RequestMapping注解都指定了具体的方法类型(GET, POST等),并验证URL模式是否匹配实际请求地址。比如下面的例子适用于GET类型的根路径(`"/"`)请求返回index.html文档: ```java @Controller public class HomeController { @GetMapping("/") public String home(){ return "forward:index.html"; } } ``` 通过以上措施应该能够有效解决DispatcherServlet无法找到对应URI的问题。同时注意检查日志输出寻找更多线索帮助定位潜在错误源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值