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

Spring Boot表单校验+双向绑定报错:Neither BindingResult异常

问题解决:Spring Boot Todo项目校验+双向绑定触发请求属性错误

问题场景

在Spring Boot Todo项目中,未给实体添加校验规则时,数据插入功能运行正常。但为Todo实体的targetDate字段添加@Future校验注解,并使用Spring表单标签实现双向绑定后,触发了如下错误:

Neither BindingResult nor plain target object for bean name 'todooo' available as request attribute

排查结论

经过调试确认,该错误仅在实体校验与Spring表单双向绑定同时启用时出现。

解决方案

在处理POST请求的Controller方法参数中,同时添加@Valid和@ModelAttribute("todooo")注解,显式绑定并校验指定名称的实体对象即可解决问题。

代码示例

@PostMapping("/save-todo")
public String saveTodo(@Valid @ModelAttribute("todooo") Todo todo, BindingResult bindingResult) {
    // 处理校验错误,返回表单页面展示错误信息
    if (bindingResult.hasErrors()) {
        return "todo-form";
    }
    // 执行Todo保存逻辑
    todoRepository.save(todo);
    return "redirect:/todos";
}

原理说明

Spring表单标签渲染时,需要请求域中存在对应名称的实体对象。开启校验后,若未通过@ModelAttribute显式指定绑定的bean名称,或未添加@Valid触发校验并关联BindingResult,框架将无法找到对应的请求属性,进而抛出上述错误。显式配置后,框架能正确识别并绑定目标实体,同时处理校验逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 07:52:05