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

Spring Boot CRUD系统点击新增链接出现HTTP 404错误求助

排查Spring Boot CRUD中「Add new」链接404的问题

针对你遇到的点击「Add new」出现404的情况,结合你给出的代码和配置,我整理了几个常见的排查方向和解决方案:

1. 检查控制器类的注解是否完整

你贴出的EmployeeController代码只包含了方法,首先要确认类上有没有添加@Controller注解——这是Spring识别控制器并生效请求映射的关键,很多新手容易漏掉这个:

@Controller  // 必须添加这个注解
public class EmployeeController {
    @Autowired
    private EmployeeService service;

    // 你的方法代码...
}

如果没有这个注解,Spring不会把这个类当作控制器处理,/new的请求映射自然不会生效,导致404。

2. 确认控制器所在包被Spring Boot扫描到

Spring Boot默认只会扫描主启动类所在包及其子包中的组件。假设你的主启动类(比如EmployeeApplication.java)在com.yourcompany.demo包下,那EmployeeController必须放在com.yourcompany.demo或者它的子包(比如com.yourcompany.demo.controller)里。

如果控制器不在这个范围内,你需要在主启动类上添加@ComponentScan指定扫描的包:

@SpringBootApplication
@ComponentScan(basePackages = "com.yourcompany.controller")  // 替换成你的控制器所在包
public class EmployeeApplication {
    public static void main(String[] args) {
        SpringApplication.run(EmployeeApplication.class, args);
    }
}

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

你的控制器方法add返回"new",Thymeleaf默认会去src/main/resources/templates/目录下找new.html文件。请确认这个文件确实存在于该目录下,和index.html同级。

注意:如果是视图文件找不到,通常会抛出500错误而非404,但如果控制器映射没生效的话是404,所以优先检查前面两点。

4. 手动测试请求路径

直接在浏览器地址栏输入http://localhost:7020/new:

  • 如果还是404:说明请求根本没到达控制器,回到前两点排查;
  • 如果能正常加载页面:那问题出在页面的链接生成上,查看页面源码,确认<a>标签的href属性是不是正确的/new(可能是Thymeleaf表达式生成出错)。

5. 规范请求映射的写法

建议用@GetMapping("/new")代替@RequestMapping(value = "/new"),更明确指定这是处理GET请求的映射,和页面链接的GET请求对应,代码可读性也更强:

@GetMapping("/new")
public String add(Model model) {
    model.addAttribute("employee", new Employee());
    return "new";
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 12:07:51