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

Spring MVC HTTP 404问题求助:DispatcherServlet无请求映射匹配

解决Spring MVC HTTP 404 (No mapping found) 问题

看起来你遇到的核心问题是:访问应用根路径 /BugzillaReport/ 时,Spring的DispatcherServlet找不到对应的请求映射,从而抛出404错误。我们可以从以下几个方面逐步排查和修复:


1. 为根路径添加请求映射

你的控制器BugzillaReportController目前只映射了uploadform和savefile两个路径,但没有处理根路径/的请求。当你访问/BugzillaReport/时,DispatcherServlet找不到匹配的Handler,就会报出你看到的警告。

修改控制器,添加一个根路径的映射方法,直接跳转到你的上传表单页面:

@Controller
public class BugzillaReportController {
    // 保留现有代码...

    // 添加根路径映射,重定向到上传表单
    @RequestMapping("/")
    public String redirectToUploadForm() {
        return "redirect:/uploadform";
    }

    // 或者直接返回uploadform视图(二选一即可)
    // @RequestMapping("/")
    // public ModelAndView rootPage() {
    //     return new ModelAndView("uploadform");
    // }
}

2. 验证视图文件的位置是否正确

你的视图解析器配置了:

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/jsp/"></property>
    <property name="suffix" value=".jsp"></property>
</bean>

这意味着uploadform视图对应的文件必须是 /WEB-INF/jsp/uploadform.jsp。如果这个文件不存在或者路径/文件名拼写错误,即使映射正确也会出现404,一定要确认文件位置完全匹配。

3. 修复index.jsp的标签问题

你的index.jsp里的<form:form>标签没有闭合,这会导致页面渲染异常,虽然不是404的直接原因,但也需要修复:

<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<!DOCTYPE html>
<html>
<head>
    <title>Image File Upload</title>
</head>
<body>
<h1>File Upload Example - JavaTpoint</h1>
<h3 style="color:red">${filesuccess}</h3>
<form:form method="post" action="savefile" enctype="multipart/form-data">
    <p><label for="image">Choose Image</label></p>
    <p><input name="file" id="fileToUpload" type="file" /></p>
    <p><input type="submit" value="Upload"></p>
</form:form> <!-- 补充闭合form标签 -->
</body>
</html>

4. 确认配置文件的正确性

你的spring-dispatcher-servlet.xml已经包含了正确的核心配置:

  • <context:component-scan base-package="com.test.bugzillareport" /> 确保控制器被Spring扫描并注册
  • <mvc:annotation-driven /> 启用注解式请求映射功能
  • 额外配置的BeanNameUrlHandlerMapping可以保留,但如果只使用注解映射,这个Bean可以省略(不影响功能,仅减少冗余)

另外,multipartResolver的配置是为文件上传准备的,和当前404问题无关,后续测试上传功能时再验证即可。


完成以上步骤后,重启应用,访问http://localhost:8080/BugzillaReport/应该就能正常跳转到上传表单页面了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:25:17