使用Spring MVC时可能会遇到这个问题。
Neither BindingResult nor plain target object for bean
这句话里有两个信息:
(1)plain target object : 这是指JSP页面中有一个 modelAttribute (例如叫A),而 返回的模型Model中没有这个A。
这个问题,一般比较容易发现。
(2)不仅(1)没有,BindingResult也没有。 这种情况发生在@Valid 方法的参数时。
比如:
... function(@Valid User user_a,BindingResult bindingResult)
{
...
}
当Valid check错误时,就会报这个错误,其原因是:
如果不指定 user_a 在模型中的名称,Spring MVC 会在 bindingResult 中添加一个和类名一样的对象(首字母小写),这里是 user,而不是user_a
解决方案为:
在User user_a 前加上一个模型定义: @Valid @ModelAttribute("user_a") User user_a
这样就告诉BindingResult功能,把错误Pojo对象的实例命名为 user_a,而不是 user。
时间: 2024-10-20 12:44:14