gpt4 book ai didi

java - 为什么BindingResult必须跟在@Valid后面呢?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:31:44 28 4
gpt4 key购买 nike

当我遇到错误时,我正在努力让我的 Spring MVC 验证返回到页面提交页面。我终于解决了这个问题,因为我注意到 BindingResult 需要紧挨着我正在验证的表单参数。

例如,如果我将 spring.io 教程 ( http://spring.io/guides/gs/validating-form-input/ ) 中的 checkPersonInfo 方法修改为 -

@RequestMapping(value="/", method=RequestMethod.POST)
public String checkPersonInfo(@Valid Person person, BindingResult bindingResult, Model model) {
if (bindingResult.hasErrors()) {
return "form";
}
return "redirect:/results";
}

然后它将工作并重定向到表单页面,但如果我将其更改为 -

@RequestMapping(value="/", method=RequestMethod.POST)
public String checkPersonInfo(@Valid Person person, Model model, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return "form";
}
return "redirect:/results";
}

然后它重定向到/errors

这是什么原因?

最佳答案

BindingResult 必须跟随绑定(bind)的对象。原因是,如果您有更多的对象被绑定(bind),您必须知道哪个 BindingResult 属于哪个对象。

关于java - 为什么BindingResult必须跟在@Valid后面呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28887780/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com