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

Spring与Controller连接失败,提交表单出现404错误求助

排查Spring Controller无法识别&表单提交404的常见原因

我懂这种抓不到头绪的感觉——明明跟着教程一步步走,结果表单一点提交就跳404,服务器日志还没给出有用的错误提示,确实让人头疼。咱们一步步拆解可能的原因,帮你找到问题的根源:

1. Controller类的基础注解与组件扫描是否到位

  • 先确认你的Controller类上有没有加@Controller注解?这是Spring识别控制器类的基础标识,没加的话Spring容器根本不会把它当成控制器处理。
  • 再检查组件扫描范围:如果用Java配置,你的配置类有没有加@ComponentScan,并且指定的包路径覆盖了Controller所在的包?比如Controller在com.myapp.controller下,那配置类里得写@ComponentScan(basePackages = "com.myapp")或者更精准的com.myapp.controller,不然Spring扫不到这个类。

2. 请求映射路径是否完全匹配

  • 你的表单action是add,那Controller对应的方法有没有加@RequestMapping("/add")(或者@GetMapping("/add"),因为表单默认是GET请求)?注意Spring的请求映射是区分大小写的,别把/Add写成/add这种细节搞错。
  • 别忘了项目上下文路径!如果你的项目部署在Tomcat里的上下文路径是/my-spring-demo,那表单的action应该写成/my-spring-demo/add,或者用相对路径时要确保当前页面的路径和映射路径匹配。你可以打开浏览器开发者工具,看「网络」标签里的实际请求URL,对比下是不是和Controller里的映射一致。

3. Spring MVC核心配置是否完整

  • 如果你用XML配置,有没有加<mvc:annotation-driven />标签?这个标签是启用注解驱动的关键,没加的话@RequestMapping这类注解根本不会生效。
  • 如果是Java配置类,要确保配置类继承了WebMvcConfigurer或者标注了@EnableWebMvc,这两个是开启Spring MVC核心功能的必要条件。

4. NetBeans项目部署的坑

  • 有时候NetBeans编译部署时,可能没把最新的Controller类文件同步到Tomcat的部署目录。试试先清理项目(Build -> Clean and Build),再重新部署一遍,确保Controller的class文件已经被正确编译并放到Tomcat安装目录/webapps/你的项目名/WEB-INF/classes下。
  • 可以直接去Tomcat的部署目录里检查,要是找不到Controller的class文件,那就是编译或部署环节出问题了。

5. 请求方法是否匹配

  • 表单默认是GET请求,如果你的Controller方法用了@PostMapping("/add"),那GET请求过来肯定会404。这时候要么给表单加method="post"属性,要么把Controller的注解改成@GetMapping("/add"),或者用@RequestMapping(value="/add", method={RequestMethod.GET, RequestMethod.POST})兼容两种请求方式。

6. 调整日志级别抓细节

  • 你说Apache日志没有效错误,可以试试把Spring的日志级别调到DEBUG,这样能看到Spring启动时有没有扫描到你的Controller,以及请求过来时的处理流程。比如在application.properties里加:
    logging.level.org.springframework.web=DEBUG
    logging.level.org.springframework.context=DEBUG
    
    启动项目后,日志里会显示Spring扫描到的所有组件,以及请求的匹配过程,能帮你精准定位是Controller没被加载,还是请求路径不匹配。

如果能把你的Controller代码也贴出来,排查起来会更精准,但先从上面这些点逐一排查,应该能找到问题所在。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:12:54