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

Thymeleaf中th:field绑定表单值无法提交到Spring控制器问题求助

问题排查与修复方案

核心故障原因

你当前的Customer实体类的set方法存在语法错误,未正确给类的成员变量赋值。Spring MVC通过@ModelAttribute绑定表单参数时,依赖反射调用set方法完成属性注入,set方法逻辑错误会导致注入后成员变量仍为null。
错误的setter代码如下:

public void setFirstName(String firstName) {
    firstName = firstName;
}

public void setLastName(String lastName) {
    lastName = lastName;
}

上述代码的赋值操作是把形参赋值给形参本身,没有操作类的成员变量,修改为正确写法即可:

public void setFirstName(String firstName) {
    this.firstName = firstName;
}

public void setLastName(String lastName) {
    this.lastName = lastName;
}

其他潜在问题补充

  • 你的GET接口showAllCustomers中只往Model里添加了customer属性,但页面上遍历的${customers}属性没有添加,会导致页面列表渲染异常,需要补充查询所有用户的逻辑后把结果存入Model:
@RequestMapping(value = "user", method = RequestMethod.GET)
public String showAllCustomers(Model model) {
    model.addAttribute("customer", new Customer());
    // 补充查询所有用户的逻辑
    model.addAttribute("customers", repository.findAll());
    return "DisplayCustomerAll";
}
  • 不要直接调用Repository的静态方法,需要先注入Repository实例再调用,同时建议提交后重定向到GET接口刷新页面,避免刷新页面重复提交表单:
// 先注入Repository实例
@Autowired
private CustomerRepository repository;

@PostMapping("/create")
public String saveStudent(@ModelAttribute Customer customer) {
    repository.save(customer);
    return "redirect:/user";
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 19:45:02