Spring MVC中的BindingResult接口有什么用?
BindingResult
是有用的,只是与视图或其他东西绑定exception?
BindingResult
的确切用途是BindingResult
?
或者它是有用的绑定模型属性与视图。
特别的例子:使用BindingResult对象作为控制器内Validator的validation方法的参数。
然后,你可以检查这个对象寻找validation错误:
validator.validate(modelObject, bindingResult); if (bindingResult.hasErrors()) { // do something }
从官方的Spring文档 :
表示绑定结果的常规接口。 扩展错误注册function的接口,允许应用Validator ,并添加特定于绑定的分析和模型构build。
用作DataBinder的结果持有者 ,通过DataBinder.getBindingResult()方法获取。 BindingResult实现也可以直接使用,例如调用Validator(例如作为unit testing的一部分)。
重要的是要注意,参数的顺序对于弹簧实际上是重要的。 BindingResult需要在正在validation的表单之后。 同样,[可选的] Model参数需要在BindingResult之后。 例:
有效:
@RequestMapping(value = "/entry/updateQuantity", method = RequestMethod.POST) public String updateEntryQuantity(@Valid final UpdateQuantityForm form, final BindingResult bindingResult, @RequestParam("pk") final long pk, final Model model) { }
无效:
RequestMapping(value = "/entry/updateQuantity", method = RequestMethod.POST) public String updateEntryQuantity(@Valid final UpdateQuantityForm form, @RequestParam("pk") final long pk, final BindingResult bindingResult, final Model model) { }
BindingResult用于validation..
例:-
>
public @ResponseBody String nutzer(@ModelAttribute(value="nutzer") Nutzer nutzer, BindingResult ergebnis){ String ergebnisText; if(!ergebnis.hasErrors()){ nutzerList.add(nutzer); ergebnisText = "Anzahl: " + nutzerList.size(); }else{ ergebnisText = "Error!!!!!!!!!!!"; } return ergebnisText; }
基本上BindingResult
是一个接口,它规定了存储validation结果的对象应如何存储和检索validation的结果(错误,试图绑定到不允许的字段等)
从Spring MVC表单validation和注解教程 :
[
BindingResult
]是Spring的对象,它持有validation和绑定的结果,并包含可能发生的错误。BindingResult
必须在被validation的模型对象之后出现,否则Spring将无法validation对象并抛出exception。当Spring看到
@Valid
,它会尝试find正在validation的对象的validation器。 如果启用了“注释驱动”,Spring将自动获取validation注释。 Spring然后调用validation器,并将任何错误放在BindingResult
,并将BindingResult添加到视图模型中。